2008/7/10 Ron Alford <[EMAIL PROTECTED]>:
> Ok, I'm closer, but I'm running into a problem with typeOf and lists,
> of all things:
> *WouterTest> typeOf (eVar "v" :: TermExpr)
> Planning.Wouter.Expr (Planning.Wouter.:+: WouterTest.Const WouterTest.Var)
> *WouterTest> typeOf ([eVar "v"] :: [TermExpr])
> *** Exception: Prelude.undefined
>
> I'm pretty sure this is the culprit for getName:
> *WouterTest> getName testNamed
> "*** Exception: Prelude.undefined
>
> Any hints?
>
> Also, anyone have hints for how to get automatic derivation of Data (Expr f) ?
> I don't want to proliferate the last lines:
> deriving instance Data (Expr (And :+: Atomic (Expr (Const :+: Var))))
> deriving instance Data (Expr (Const :+: Var))
>
>


I screwed up the example code - it typechecks, but it'll fail at runtime.

If you say:

> Inr x = undefined

and then try to pass 'x' off to another function, you're trying to
evaluate the "undeifned", which is a runtime error.

You'll want something more like:

typeOf1 in@(InR f) = [...]
   where InL f = (InL undefined) `asTypeOf` in

This is approaching silliness, but I've tested the code this time
around - so it should even work.

-Antoine
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to