Re: reifyDecl and reifyType not working
Wolfgang Jeltsch <[email protected]> Mon, 10 Sep 2007 18:57:09 +0200
| Newsgroups | gmane.comp.lang.haskell.template |
|---|---|
| Message-ID | <[email protected]> |
Am Montag, 10. September 2007 14:18 schrieb Ian Lynagh:
> On Mon, Sep 10, 2007 at 08:59:45AM +0100, Simon Peyton-Jones wrote:
> > 'reifyDecl' is not a language construct; it's a function. You need to
> > import Language.Haskell.TH to bring it into scope.
>
> It's also just called reify these days.
This is not what the GHC User’s Guide talks about when discussing reifyDecl
and reifyType. In an expression reifyDecl A, A has to be a type constructor
or a class, and in an expression reifyType a, a has to be an identifier. So
reifyDecl and reifyType cannot be functions but must be language constructs.
On the other hand, reify expects a value of type Name as an argument.
The problem is that I wanted to use reifyDecl as a workaround to create values
of type Name. The Template Haskell library doesn’t seem to provide a way to
create a Name value which always refers to the same entity, regardless of the
splice where it is used. So I wanted to use workarounds like this:
className :: Name
ClassD _ className _ _ _ = reifyDecl Class
Best wishes,
Wolfgang