Changes between Version 1 and Version 2 of TFvsFD
- Timestamp:
- 06/05/12 11:04:29 (12 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TFvsFD
v1 v2 70 70 }}} 71 71 72 But type families cannot be partially applied (`Type synonym F' should 73 have 1 argument, but has been given none`): 72 But type families cannot be partially applied ({{{Type synonym F' should have 1 argument, but has been given none}}}): 74 73 75 74 {{{ … … 84 83 85 84 Type synonyms can manipulate constraint kinds but can not use 86 them. The following code doesn't make sense. 85 them. The standard encoding of the above class from FD to 86 superclass equalities does not work. 87 87 88 88 {{{ 89 89 class (f :<$>: a) ~ b => FMap (f :: * -> * -> Constraint) a b 90 90 where type f :<$>: a 91 instance FMap f (HJust a) b92 where type f :<$>: (HJust a) = f a b =>b91 instance f a b => FMap f (HJust a) b 92 where type f :<$>: (HJust a) = HJust b 93 93 }}} 94 94 … … 255 255 ==== The result of a class constraint is not obvious. ==== 256 256 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 259 258 `-> a b`. Looking at the `:info` doesn't always help to figure out the 260 259 resulting FD of a class. The kind of a class does not include the
