Changes between Version 1 and Version 2 of TFvsFD


Ignore:
Timestamp:
Jun 5, 2012 6:04:29 PM (23 months 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