polysemy-1.3.0.0: Higher-order, low-boilerplate, zero-cost free monads.

Polysemy.Internal.Bundle

Synopsis

# Documentation

type family Append l r where ... Source #

Equations

 Append (a ': l) r = a ': Append l r Append '[] r = r

extendMembership :: forall r r' e. ElemOf e r -> ElemOf e (Append r r') Source #

subsumeMembership :: forall r r' e. Members r r' => ElemOf e r -> ElemOf e r' Source #

weakenList :: forall r' r m a. KnownList r' => Union r m a -> Union (Append r' r) m a Source #

class KnownList (l :: [k]) where Source #

A class for type-level lists with a known spine.

This constraint is eventually satisfied as r is instantied to a concrete list.

Methods

unconsKnownList :: (l ~ '[] => a) -> (forall x r. (l ~ (x ': r), KnownList r) => Proxy x -> Proxy r -> a) -> a Source #

Instances
 KnownList ([] :: [k]) Source # Instance detailsDefined in Polysemy.Internal.Bundle MethodsunconsKnownList :: (([] ~ []) -> a) -> (forall (x :: k0) (r :: [k0]). ([] ~ (x ': r), KnownList r) => Proxy x -> Proxy r -> a) -> a Source # KnownList r => KnownList (x ': r :: [k]) Source # Instance detailsDefined in Polysemy.Internal.Bundle MethodsunconsKnownList :: (((x ': r) ~ []) -> a) -> (forall (x0 :: k0) (r0 :: [k0]). ((x ': r) ~ (x0 ': r0), KnownList r0) => Proxy x0 -> Proxy r0 -> a) -> a Source #