
That would be nice. It would also be nice to be able to use _ in type
signatures as in:
const :: a -> _ -> a
const x _ = x
During type checking each _ could be replaced by a new unique type
variable. Visa versa should also be possible: during type inferencing each
unique type variable could be replaced by a _.
Bas
On Jan 9, 2012 6:22 AM, "wren ng thornton"
On 1/8/12 8:32 AM, Bas van Dijk wrote:
On 23 December 2011 17:44, Simon Peyton-Jones
> wrote: My attempt at forming a new understanding was driven by your example.
class Functor f where type C f :: * -> Constraint type C f = ()
sorry -- that was simply type incorrect. () does not have kind * -> Constraint
So am I correct that the `class Empty a; instance Empty a` trick is currently the only way to get default associated empty constraints?
Couldn't the following work?
class Functor f where type C f :: * -> Constraint type C f _ = ()
It seems to me that adding const to the type level (either implicitly or explicitly) is cleaner and simpler than overloading () to be Constraint, *->Constraint, *->*->Constraint,...
-- Live well, ~wren
______________________________**_________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.**org
http://www.haskell.org/**mailman/listinfo/glasgow-**haskell-usershttp://www.haskell.org/mailman/listinfo/glasgow-haskell-users