[Haskell-cafe] Template Haskell and Types
cgibbard at gmail.com
Mon Sep 12 12:49:47 EDT 2005
I'm not exactly sure what it is that you're trying to do with that
code, but here's an approximation to that code which prints the
Template Haskell representation of the type MyData:
data MyData = MyData1 | MyData2
main = do putStrLn $(liftM (LitE . stringL . show) [t|MyData|])
by the way -- does anyone happen to know why Q isn't an instance of
Functor? It's obviously a functor by virtue of being a monad.
On 12/09/05, Gracjan Polak <gracjan at acchsh.com> wrote:
> Probably very simple question about template haskell: How do I make a
> type for an argument to splice? Example:
> data MyData = MyData1 | MyData2
> mysplice mytype =
> [| litE $ stringL $ show mytype |]
> main = do
> putStrLn $(mysplice MyData)
> The above is not accepted, error:
> Compiling Main ( thtest.hs, thtest.o )
> thtest.hs:51:34: Not in scope: data constructor `MyData'
> So how do I provide type as an argument?
> Besides: documentation that I found for th is very dated. Could somebody
> point me to something more up to date about th? Thanks!
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
More information about the Haskell-Cafe