License | BSD-style (see the file LICENSE) |
---|---|
Maintainer | sjoerd@w3future.com |
Stability | experimental |
Portability | non-portable |
Safe Haskell | Safe |
Language | Haskell2010 |
- scls1 :: forall b h x. SuperClass1 b h => h x :- b x
- type SuperClass1 b h = (HasSuperClasses h, HasSuperClasses b, SuperClasses b `Subset` SuperClasses h, IsSubset (SuperClasses b) (SuperClasses h))
- class HasSuperClasses (c :: k -> Constraint) where
- type SuperClasses c :: [k -> Constraint]
- type family (as :: [k]) ++ (bs :: [k]) :: [k] where ...
- type family FoldConstraints (cs :: [k -> Constraint]) (x :: k) :: Constraint
- class Elem (c :: k -> Constraint) (cs :: [k -> Constraint]) where
- class IsSubset as bs where
- type family Subset (xs :: [k]) (ys :: [k]) :: Constraint
Documentation
scls1 :: forall b h x. SuperClass1 b h => h x :- b x Source #
Proof that b
is a superclass of h
, i.e. h x
entails b x
.
type SuperClass1 b h = (HasSuperClasses h, HasSuperClasses b, SuperClasses b `Subset` SuperClasses h, IsSubset (SuperClasses b) (SuperClasses h)) Source #
class HasSuperClasses (c :: k -> Constraint) where Source #
type SuperClasses c :: [k -> Constraint] Source #
superClasses :: c x :- FoldConstraints (SuperClasses c) x Source #
superClasses :: SuperClasses c ~ '[c] => c x :- FoldConstraints (SuperClasses c) x Source #
containsSelf :: FoldConstraints (SuperClasses c) x :- c x Source #
containsSelf :: SuperClasses c ~ '[c] => FoldConstraints (SuperClasses c) x :- c x Source #
type family FoldConstraints (cs :: [k -> Constraint]) (x :: k) :: Constraint Source #
type FoldConstraints k ([] (k -> Constraint)) x Source # | |
type FoldConstraints k ((:) (k -> Constraint) c cs) x Source # | |
class Elem (c :: k -> Constraint) (cs :: [k -> Constraint]) where Source #
Elem k b cs => Elem k b ((:) (k -> Constraint) c cs) Source # | |
Elem k c ((:) (k -> Constraint) c cs) Source # | |
class IsSubset as bs where Source #
isSubset :: as `Subset` bs => Proxy x -> Proxy as -> Proxy bs -> FoldConstraints bs x :- FoldConstraints as x Source #
IsSubset k ([] (k -> Constraint)) bs Source # | |
IsSubset k as bs => IsSubset k ((:) (k -> Constraint) a as) bs Source # | |
type family Subset (xs :: [k]) (ys :: [k]) :: Constraint Source #
type Subset k ([] k) bs Source # | |
type Subset (k -> Constraint) ((:) (k -> Constraint) a as) bs Source # | |