Changes between Version 1 and Version 2 of TFvsFD


Ignore:
Timestamp:
Jun 5, 2012 6:04:29 PM (3 years ago)
Author:
atnnn
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TFvsFD

    v1 v2  
    7070}}}
    7171
    72 But type families cannot be partially applied (`Type synonym F' should
    73 have 1 argument, but has been given none`):
     72But type families cannot be partially applied ({{{Type synonym F' should have 1 argument, but has been given none}}}):
    7473
    7574{{{
     
    8483
    8584Type synonyms can manipulate constraint kinds but can not use
    86 them. The following code doesn't make sense.
     85them. The standard encoding of the above class from FD to
     86superclass equalities does not work.
    8787
    8888{{{
    8989class (f :<$>: a) ~ b =>  FMap (f :: * -> * -> Constraint) a b
    9090  where type f :<$>: a
    91 instance FMap f (HJust a) b
    92   where type f :<$>: (HJust a) = f a b => b
     91instance f a b => FMap f (HJust a) b
     92  where type f :<$>: (HJust a) = HJust b
    9393}}}
    9494
     
    255255==== The result of a class constraint is not obvious. ====
    256256
    257 `C a b` could have
    258  the FD `a -> b`, `b -> a`, neither, both or even someting like
     257`C a b` could have the FD `a -> b`, `b -> a`, neither, both or even someting like
    259258`-> a b`. Looking at the `:info` doesn't always help to figure out the
    260259resulting FD of a class. The kind of a class does not include the