Safe Haskell | None |
---|---|
Language | Haskell2010 |
Data.OneOrMoreApp
Synopsis
- data OneOrMoreApp (a :: SetApp Type)
- type Expandable (f :: Type -> Type) (as :: Set Type) (as' :: Set Type) = Expandable (Map f as) (Map f as')
- type Collapsable (f :: Type -> Type) (as :: Set Type) (as' :: Set Type) = Collapsable (Map f as) (Map f as')
- type Mergeable (f :: Type -> Type) (as :: Set Type) (as' :: Set Type) (mrg :: Set Type) = Mergeable (Map f as) (Map f as') (Map f mrg)
- pattern Singleton :: forall a (f :: Type -> Type). a -> OneOrMoreApp ('SetApp f (Singleton a))
- unSingleton :: forall (f :: Type -> Type) a. OneOrMoreApp ('SetApp f (Singleton a)) -> a
- project :: forall (as :: Set Type) a (f :: Type -> Type). Projectable as a => OneOrMoreApp ('SetApp f as) -> Maybe a
- (>-) :: forall a (as :: Set Type) (as' :: Set Type) (f :: Type -> Type). Insertable a as as' => a -> OneOrMoreApp ('SetApp f as) -> OneOrMoreApp ('SetApp f as')
- expand :: forall (as :: Set Type) (as' :: Set Type) (f :: Type -> Type). Expandable as as' => OneOrMoreApp ('SetApp f as) -> OneOrMoreApp ('SetApp f as')
- collapse :: forall (as :: Set Type) (as' :: Set Type) (f :: Type -> Type). Collapsable as as' => OneOrMoreApp ('SetApp f as) -> Maybe (OneOrMoreApp ('SetApp f as'))
- 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)
- 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))
Type
data OneOrMoreApp (a :: SetApp Type) Source #
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 #