Template Haskell crashes unexpectedly...

Brian Hulley brianh at metamilk.com
Mon Aug 21 13:09:25 EDT 2006


Arie Peterson wrote:
> I seem to remember that 'reify' cannot be run in the IO monad. IIRC
> ghci gives a nice error message saying this, so perhaps you can try
> to execute 'main' from within ghci to corroborate my suspicion.

Yes you're right - ghci gives the error:

    "Can't do `reify' in the IO monad"

> 
>> Also, I'm puzzled by the type of reify, because the name "Car" above
>> should
>> surely be both a TyConI and a DataConI so how does this function
>> decide which to return the info about? I expected an extra parameter
>> to determine what namespace to look the name up in.
> 
> The preferred way to refer to names that are in scope is by using the
> quotation mechanism:
> 
>  'getName    is the name of the function 'getName'
>  ''Object    is the name of the type 'Object'
> 
> This also makes the distinction you rightly wanted.

Thanks, Brian.


More information about the Glasgow-haskell-users mailing list