On 1/8/12 8:32 AM, Bas van Dijk wrote:
On 23 December 2011 17:44, Simon Peyton-Jones<simo...@microsoft.com> 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-users