Yes, this does help, thank you.  I didn't know you could generate
specialized instances.  In fact, I was so sure that this was some
arcane feature I immediately went to the GHC User Guide because I
didn't believe it was documented.

I immediately stumbled upon Section 8.13.9.

Thanks to everyone who helped me with this.  I think I've achieved a
small bit of enlightenment.

Cheers,
John

On Fri, Nov 28, 2008 at 2:46 PM, Simon Peyton-Jones
<[EMAIL PROTECTED]> wrote:
> The $f2 comes from the instance Monad (IterateeGM ...).
> print_lines uses a specialised version of that instance, namely
>        Monad (IterateeGM el IO)
> The fact that print_lines uses it makes GHC generate a specialised version of 
> the instance decl.
>
> Even in the absence of print_lines you can generate the specialised instance 
> thus
>
> instance Monad m => Monad (IterateeGM el m) where
>    {-# SPECIALISE instance Monad (IterateeGM el IO) #-}
>        ... methods...
>
> does that help?
>
> Simon
>
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to