[Haskell-cafe] Re[2]: [Haskell] Proposal: unification of style of
function/data/type/class definitions
Bulat Ziganshin
bulat.ziganshin at gmail.com
Mon Sep 11 01:28:44 EDT 2006
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:Bulat.Ziganshin at gmail.com
More information about the Haskell-Cafe
mailing list