heftia-0.5.0.0: higher-order algebraic effects done right
Safe HaskellNone
LanguageGHC2021

Data.Effect.OpenUnion.Sum

Synopsis

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 #