Copyright | Copyright (C) 2015 Kyle Carter |
---|---|
License | BSD3 |
Maintainer | Kyle Carter <kylcarte@indiana.edu> |
Stability | experimental |
Portability | RankNTypes |
Safe Haskell | None |
Language | Haskell2010 |
Convenient type families for working with type-level Either
s.
- type family EitherC (ec :: Either k Constraint) :: Constraint where ...
- type family IsLeft (a :: Either k l) :: Bool where ...
- type family IsRight (a :: Either k l) :: Bool where ...
- leftCong :: (a ~ b) :- (IsLeft a ~ IsLeft b)
- rightCong :: (a ~ b) :- (IsRight a ~ IsRight b)
- leftNotRight :: (Left a ~ Right b) :- Fail
- type family (f :: k -> l) <$> (a :: Either m k) :: Either m l where ...
- eitherFmapCong :: (f ~ g, a ~ b) :- ((f <$> a) ~ (g <$> b))
- type family (f :: Either m (k -> l)) <&> (a :: k) :: Either m l where ...
- eitherPamfCong :: (f ~ g, a ~ b) :- ((f <&> a) ~ (g <&> b))
- type family (f :: Either m (k -> l)) <*> (a :: Either m k) :: Either m l where ...
- eitherApCong :: (f ~ g, a ~ b) :- ((f <*> a) ~ (g <*> b))
- type family (a :: Either m k) <|> (b :: Either m k) :: Either m k where ...
- eitherAltCong :: (a ~ c, b ~ d) :- ((a <|> b) ~ (c <|> d))
- type family FromLeft (e :: Either k l) :: k where ...
- type family FromRight (e :: Either k l) :: l where ...
- fromLeftCong :: (a ~ b) :- (FromLeft a ~ FromLeft b)
- fromRightCong :: (a ~ b) :- (FromRight a ~ FromRight b)
Documentation
type family EitherC (ec :: Either k Constraint) :: Constraint where ... Source #
Take a Maybe Constraint
to a Constraint
.
type family (f :: k -> l) <$> (a :: Either m k) :: Either m l where ... infixr 4 Source #
Map over a type-level Maybe
.
type family (f :: Either m (k -> l)) <*> (a :: Either m k) :: Either m l where ... infixr 4 Source #