ConstraintKinds and default associated empty constraints

Bas van Dijk v.dijk.bas at gmail.com
Thu Dec 22 10:34:48 CET 2011


On 22 December 2011 01:58,  <wagnerdm at seas.upenn.edu> wrote:
> Quoting Bas van Dijk <v.dijk.bas at gmail.com>:
>
>> I'm playing a bit with the new ConstraintKinds feature in GHC
>> 7.4.1-rc1. I'm trying to give the Functor class an associated
>> constraint so that we can make Set an instance of Functor. The
>> following code works but I wonder if the trick with: class Empty a;
>> instance Empty a, is the recommended way to do this:
>
>
> Maybe something like this?
>
> class Functor f where
>    type C f a :: Constraint
>    type C f a = ()
>
> instance Functor Set where
>    type C Set a = Ord a
>
> ~d
>
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at haskell.org
> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Yes I already tried that, but the following gives a type error:

instance Functor [] where
    fmap = map

testList = fmap (+1) [1,2,3]

Could not deduce (C [] b0) arising from a use of `fmap'
In the expression: fmap (+ 1) [1, 2, 3]



More information about the Glasgow-haskell-users mailing list