<p><pre><code>    -- const [] for a HeadList
    quux :: a -&gt; HeadList a
    quux = HeadList . (const [])

    *Main&gt; HeadList &quot;hello... no wait&quot; &gt;&gt;= quux
    HeadList {getHeadList = &quot;*** Exception: Prelude.head: empty list
</code></pre>
Such breakage is verboten. This monad instance does not fly.