type-set-0.1.0.0: Type set
Safe HaskellNone
LanguageHaskell2010

Data.OneOrMoreApp

Synopsis

Type

Constraint Synonym

type Expandable (f :: Type -> Type) (as :: Set Type) (as' :: Set Type) = Expandable (Map f as) (Map f as') Source #

type Collapsable (f :: Type -> Type) (as :: Set Type) (as' :: Set Type) = Collapsable (Map f as) (Map f as') Source #

type Mergeable (f :: Type -> Type) (as :: Set Type) (as' :: Set Type) (mrg :: Set Type) = Mergeable (Map f as) (Map f as') (Map f mrg) Source #

Function

Single Type

pattern Singleton :: forall a (f :: Type -> Type). a -> OneOrMoreApp ('SetApp f (Singleton a)) Source #

unSingleton :: forall (f :: Type -> Type) a. OneOrMoreApp ('SetApp f (Singleton a)) -> a Source #

Multiple Type

project :: forall (as :: Set Type) a (f :: Type -> Type). Projectable as a => OneOrMoreApp ('SetApp f as) -> Maybe a Source #

(>-) :: forall a (as :: Set Type) (as' :: Set Type) (f :: Type -> Type). Insertable a as as' => a -> OneOrMoreApp ('SetApp f as) -> OneOrMoreApp ('SetApp f as') Source #

Expand and Collapse

expand :: forall (as :: Set Type) (as' :: Set Type) (f :: Type -> Type). Expandable as as' => OneOrMoreApp ('SetApp f as) -> OneOrMoreApp ('SetApp f as') Source #

collapse :: forall (as :: Set Type) (as' :: Set Type) (f :: Type -> Type). Collapsable as as' => OneOrMoreApp ('SetApp f as) -> Maybe (OneOrMoreApp ('SetApp f as')) Source #

Merge

merge :: forall (as :: Set Type) (as' :: Set Type) (mrg :: Set Type) (f :: Type -> Type). Mergeable as as' mrg => OneOrMoreApp ('SetApp f as) -> OneOrMoreApp ('SetApp f as') -> OneOrMoreApp ('SetApp f mrg) Source #

merge' :: forall (as :: Set Type) (as' :: Set Type) (mrg :: Set Type) (f :: Type -> Type). (Mergeable as as' mrg, Expandable as mrg, Expandable as' mrg) => Maybe (OneOrMoreApp ('SetApp f as)) -> Maybe (OneOrMoreApp ('SetApp f as')) -> Maybe (OneOrMoreApp ('SetApp f mrg)) Source #