Hello Taral,

Sunday, September 10, 2006, 9:45:33 PM, you wrote:

>> data Expr t           = If (Expr Bool) (Expr t) (Expr t)
>>      Expr Int         = Lit Int
>>      Expr Bool | Eq t = Eq (Expr t) (Expr t)

> I find this somewhat unreadable due to the implicit "t" parameter not
> showing up on the left-hand side...

if you mean last line, i tend to agree. i was just a little impulsive
and don't mentioned that we define existential here :)

it may look as

      Expr Bool = Eq (Expr t) (Expr t) | Eq t

Brian Hulley developed here an idea about implicit "forall"
declaration just before class restrictions involving this variable, so
it will be equivalent to:

      Expr Bool = Eq (Expr t) (Expr t) | forall t . Eq t

-- 
Best regards,
 Bulat                            mailto:[EMAIL PROTECTED]

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

Reply via email to