[Haskell-cafe] Template Haskell newbie questions
hpacheco at gmail.com
Sat Sep 22 13:56:08 EDT 2007
I'm try to write some function in TH that I don't even know if it is
Consider the example from the tutorials
sel 1 2 = [| \(x,_) -> x |]
sel 2 2 = [| \(_,x) -> x |]
If I want to write some function that will dynamically create a selection
function according to its arguments and do something with it.
fsel :: Int -> Int -> x
fsel x y = $(sel x y) ...
Imagine a stupid case for
fsel :: Int -> Int -> Int
fsel x y = $(sel x y) (x,y)
The compiler complains that
GHC stage restriction: `x'
is used in a top-level splice, and must be imported, not defined
In the first argument of `sel', namely `x'
In the expression: $[splice](sel x y) (x, y)
In the definition of `fsel': fsel x y = $[splice](sel x y) (x, y)
what, indeed, makes sense.
However, is there a possible way to generate Haskell functions from TH
without having to instanciate its arguments?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe