[Haskell-cafe] does the order of splice definitions matter in
template haskell, or is this a bug?
Ian Lynagh
igloo at earth.li
Wed Oct 31 15:43:01 EDT 2007
Hi Thomas,
On Wed, Oct 31, 2007 at 03:27:20PM -0400, Thomas Hartman wrote:
> I have a situation where
>
> ... stuff...
>
> $(expose ['setState, 'getState]
> f = SetState
>
> compiles but
>
> f = SetState
> $(expose ['setState, 'getState]
>
> doesn't compile, with error: Not in scope: data constructor 'SetState.
>
> Is this a bug?
Not if SetState is created by the splice or defined after the splice,
no.
GHC typechecks up to the splice before running the splice, and then
continues typechecking everything past the splice afterwards. So if f is
defined before the splice then it must typecheck without the results of
the splice (or anything later in the file).
Thanks
Ian
More information about the Haskell-Cafe
mailing list