[Haskell-cafe] Re: Re[2]: [Haskell] Proposal: unification of style of function/data/type/class definitions

Taral taralx at gmail.com
Mon Sep 11 11:07:51 EDT 2006

On 9/11/06, Bulat Ziganshin <bulat.ziganshin at gmail.com> wrote:
>       Expr Bool = Eq (Expr t) (Expr t) | forall t . Eq t

Still confusing, but less so.

The problem is that it's really backwards. The symbol being defined is "Eq".

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

but that doesn't fit well, does it? In my mind, the current mode is a
functional one:

Eq :: Eq t => Expr t -> Expr t -> Expr Bool

And this is perfectly readable. The arrow means that the argument is
an implicit propositional one, but it's still an argument.

Taral <taralx at gmail.com>
"You can't prove anything."
    -- Gödel's Incompetence Theorem

More information about the Haskell-Cafe mailing list