Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- newtype Vessel (k :: ((* -> *) -> *) -> *) (g :: * -> *) = Vessel {
- unVessel :: MonoidalDMap k (FlipAp g)
- type family VesselLeafWrapper v where ...
- toListV :: Vessel k g -> [VSum k g]
- fromListV :: (GCompare k, Has View k) => [VSum k g] -> Vessel k g
- intersectionMaybeWithKeyV :: (GCompare k, Has View k) => (forall v. View v => k v -> v g -> v g' -> Maybe (v h)) -> Vessel k g -> Vessel k g' -> Vessel k h
- traverseWithKeyV :: (GCompare k, Has View k, Applicative m) => (forall v. View v => k v -> v g -> m (v h)) -> Vessel k g -> m (Vessel k h)
- traverseWithKeyV_ :: (GCompare k, Has View k, Applicative m) => (forall v. View v => k v -> v g -> m ()) -> Vessel k g -> m ()
- buildV :: (GCompare k, Has View k, Applicative m) => Vessel k g -> (forall v. k v -> v g -> m (v h)) -> m (Vessel k h)
- intersectionWithKeyV :: (GCompare k, Has View k) => (forall v. View v => k v -> v g -> v g' -> v h) -> Vessel k g -> Vessel k g' -> Vessel k h
- singletonV :: View v => k v -> v g -> Vessel k g
- lookupV :: GCompare k => k v -> Vessel k g -> Maybe (v g)
- mapMaybeWithKeyV :: (GCompare k, Has View k) => (forall v. View v => k v -> v g -> Maybe (v g')) -> Vessel k g -> Vessel k g'
- intersectionDMapMaybeWithKey :: GCompare k => (forall x. k x -> a x -> b x -> Maybe (c x)) -> MonoidalDMap k a -> MonoidalDMap k b -> MonoidalDMap k c
- condenseV' :: forall k t g. (Has View k, GCompare k, Foldable t, Filterable t, Functor t) => DMap k (FlipAp g) -> t (Vessel k g) -> Vessel k (Compose t g)
- unionDistinctAscV :: GCompare k => Vessel k g -> Vessel k g -> Vessel k g
- splitV :: forall k t g v. (GCompare k, View v, Filterable t) => k v -> t (Vessel k g) -> (t (Vessel k g), t (Vessel k g))
- splitOneV :: (GCompare k, View v) => k v -> Vessel k g -> Maybe (These (Vessel k g) (Vessel k g))
- splitLTV :: (GCompare k, View v) => k v -> Vessel k g -> (Vessel k g, Vessel k g)
- vessel :: (GCompare k, ViewQueryResult (v g) ~ v (ViewQueryResult g), View v, Alternative n, Applicative m) => k v -> ViewMorphism m n (v g) (Vessel k g)
- toVessel :: (Applicative m, Alternative n, GCompare k, ViewQueryResult (v g) ~ v (ViewQueryResult g), View v) => k v -> ViewHalfMorphism m n (v g) (Vessel k g)
- fromVessel :: (Alternative m, Applicative n, GCompare k, ViewQueryResult (v g) ~ v (ViewQueryResult g), View v) => k v -> ViewHalfMorphism m n (Vessel k g) (v g)
- filterNullFlipAps :: (GCompare k, Has View k) => MonoidalDMap k (FlipAp f) -> MonoidalDMap k (FlipAp f)
Documentation
newtype Vessel (k :: ((* -> *) -> *) -> *) (g :: * -> *) Source #
This type is a container for storing an arbitrary collection of functor-parametric container types of the sort discussed above, keyed by a GADT whose index will specify which sort of container goes in each position.
Ordinary types with values have kind * Functors have kind * -> * Containers taking a functor as a parameter then have kind (* -> *) -> * The keys of a vessel are indexed by a functor-parametric container type, so they have kind ((* -> *) -> *) -> * Vessel itself, for any such key type, produces a functor-parametric container, so it has kind (((* -> *) -> *) -> *) -> (* -> *) -> * Law: None of the items in the Vessel's MonoidalDMap are nullV
Vessel | |
|
Instances
type family VesselLeafWrapper v where ... Source #
VesselLeafWrapper (Vessel k g) = g |
intersectionMaybeWithKeyV :: (GCompare k, Has View k) => (forall v. View v => k v -> v g -> v g' -> Maybe (v h)) -> Vessel k g -> Vessel k g' -> Vessel k h Source #
traverseWithKeyV :: (GCompare k, Has View k, Applicative m) => (forall v. View v => k v -> v g -> m (v h)) -> Vessel k g -> m (Vessel k h) Source #
traverseWithKeyV_ :: (GCompare k, Has View k, Applicative m) => (forall v. View v => k v -> v g -> m ()) -> Vessel k g -> m () Source #
buildV :: (GCompare k, Has View k, Applicative m) => Vessel k g -> (forall v. k v -> v g -> m (v h)) -> m (Vessel k h) Source #
intersectionWithKeyV :: (GCompare k, Has View k) => (forall v. View v => k v -> v g -> v g' -> v h) -> Vessel k g -> Vessel k g' -> Vessel k h Source #
singletonV :: View v => k v -> v g -> Vessel k g Source #
mapMaybeWithKeyV :: (GCompare k, Has View k) => (forall v. View v => k v -> v g -> Maybe (v g')) -> Vessel k g -> Vessel k g' Source #
intersectionDMapMaybeWithKey :: GCompare k => (forall x. k x -> a x -> b x -> Maybe (c x)) -> MonoidalDMap k a -> MonoidalDMap k b -> MonoidalDMap k c Source #
condenseV' :: forall k t g. (Has View k, GCompare k, Foldable t, Filterable t, Functor t) => DMap k (FlipAp g) -> t (Vessel k g) -> Vessel k (Compose t g) Source #
splitV :: forall k t g v. (GCompare k, View v, Filterable t) => k v -> t (Vessel k g) -> (t (Vessel k g), t (Vessel k g)) Source #
splitOneV :: (GCompare k, View v) => k v -> Vessel k g -> Maybe (These (Vessel k g) (Vessel k g)) Source #
vessel :: (GCompare k, ViewQueryResult (v g) ~ v (ViewQueryResult g), View v, Alternative n, Applicative m) => k v -> ViewMorphism m n (v g) (Vessel k g) Source #
toVessel :: (Applicative m, Alternative n, GCompare k, ViewQueryResult (v g) ~ v (ViewQueryResult g), View v) => k v -> ViewHalfMorphism m n (v g) (Vessel k g) Source #
fromVessel :: (Alternative m, Applicative n, GCompare k, ViewQueryResult (v g) ~ v (ViewQueryResult g), View v) => k v -> ViewHalfMorphism m n (Vessel k g) (v g) Source #
filterNullFlipAps :: (GCompare k, Has View k) => MonoidalDMap k (FlipAp f) -> MonoidalDMap k (FlipAp f) Source #