Safe Haskell | None |
---|---|
Language | GHC2021 |
Data.Effect.OpenUnion.Sum
Synopsis
- type (+) = (:+:) :: (Type -> Type) -> (Type -> Type) -> Type -> Type
- type (:+:) = (:+:) :: ((Type -> Type) -> Type -> Type) -> ((Type -> Type) -> Type -> Type) -> (Type -> Type) -> Type -> Type
- type U (u :: [k] -> k) (e :: k) = SumToRecUnion u e
- type UL (u :: [k] -> k) (e :: k) = SumToRecUnionList u e
- type SumToRecUnion (u :: [k] -> k) (e :: k) = u (SumToRecUnionList u e)
- type family SumToRecUnionList (u :: [k] -> k) (e :: k) :: [k] where ...
Documentation
type (+) = (:+:) :: (Type -> Type) -> (Type -> Type) -> Type -> Type infixr 5 Source #
Sum for first-order effects.
type (:+:) = (:+:) :: ((Type -> Type) -> Type -> Type) -> ((Type -> Type) -> Type -> Type) -> (Type -> Type) -> Type -> Type Source #
Sum for higher-order effects.
type U (u :: [k] -> k) (e :: k) = SumToRecUnion u e Source #
type UL (u :: [k] -> k) (e :: k) = SumToRecUnionList u e Source #
type SumToRecUnion (u :: [k] -> k) (e :: k) = u (SumToRecUnionList u e) Source #
type family SumToRecUnionList (u :: [k] -> k) (e :: k) :: [k] where ... Source #
Equations
SumToRecUnionList Union Nop = '[] :: [EffectF] | |
SumToRecUnionList Union (e + r :: EffectF) = e ': SumToRecUnionList Union r | |
SumToRecUnionList Union (e :: EffectF) = '[e] | |
SumToRecUnionList UnionH LNop = '[] :: [EffectH] | |
SumToRecUnionList UnionH (e :+: r :: EffectH) = e ': SumToRecUnionList UnionH r | |
SumToRecUnionList UnionH (e :: EffectH) = '[e] |