[Haskell-cafe] How to use Template Haskell based on code that generated by another Template?
adam vogt
vogt.adam at gmail.com
Wed Jul 3 17:04:59 CEST 2013
On Wed, Jul 3, 2013 at 2:25 AM, Magicloud Magiclouds
<magicloud.magiclouds at gmail.com> wrote:
> Then I got
> Illegal variable name: `UserPassword'
> When splicing a TH declaration:
Hi Magicloud,
GHC seems to be trying to tell you that variables are lowercase in
haskell. Since you don't have code, I'm guessing your error is from
doing something like:
> wrong1 = print ($(dyn "Just") 5)
> wrong2 = print ($(varE 'Just) 5)
Which is a compile time error since you apparently can't pass a Name
which is capitalized to `VarE :: Name -> Exp'
Any of these options work. They use the `ConE :: Name -> Exp'
constructor instead:
> opt1 = print ($(conE (mkName "Just")) 5)
> opt2 = print ($(conE 'Just) 5)
> opt3 = print ($( [| Just |]) 5 )
--
Adam
More information about the Haskell-Cafe
mailing list