<div>Currently, yes; I was experimenting with type families.&nbsp; But it&#39;s pretty simple to get it to compile on 6.6.1:</div>
<div>- remove the {-# LANGUAGE #-} pragma and replace with {-# OPTIONS_GHC -fglasgow-exts -fallow-undecidable-instances #-}</div>
<div>&nbsp;</div>
<div>- change the class declaration for MonadPrompter from</div>
<div>&gt; class Monad m =&gt; MonadPrompter m where<br>&gt; &nbsp;&nbsp; type PromptType m :: * -&gt; *<br>&gt; &nbsp;&nbsp; prompt :: PromptType m a -&gt; m a<br>&nbsp;</div>
<div>to</div>
<div>&nbsp;</div>
<div>&gt; class Monad m =&gt; MonadPrompter p m | m -&gt; p where</div>
<div>&gt;&nbsp;&nbsp;&nbsp; prompt :: p a -&gt; m a</div>
<div>&nbsp;</div>
<div>- change all the instance declarations from something like this:</div>
<div>&nbsp;</div>
<div>&gt; instance MonadPrompter (XXX) where</div>
<div>&gt;&nbsp;&nbsp;&nbsp; type PromptType (XXX) = YYY</div>
<div>&gt; &nbsp;&nbsp; prompt = ...</div>
<div>&nbsp;</div>
<div>to something like this:</div>
<div>&nbsp;</div>
<div>&gt; instance MonadPrompter&nbsp;YYY (XXX) where</div>
<div>&gt;&nbsp;&nbsp;&nbsp; prompt = ...</div>
<div>&nbsp;</div>
<div>&amp; you&#39;re done.</div>
<div>&nbsp;</div>
<div>&nbsp; -- ryan</div><br>