Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- type family ViewQueryResult (v :: k) :: k
- data ViewHalfMorphism m n p q = ViewHalfMorphism {
- _viewMorphism_mapQuery :: p -> m q
- _viewMorphism_mapQueryResult :: ViewQueryResult q -> n (ViewQueryResult p)
- data ViewMorphism m n p q = ViewMorphism {
- _viewMorphism_to :: ViewHalfMorphism m n p q
- _viewMorphism_from :: ViewHalfMorphism n m q p
- type ViewMorphismSimple = ViewMorphism Identity Maybe
- zipViewMorphism :: (Semigroup (m c), Semigroup (m (ViewQueryResult c)), Semialign n, Applicative n) => ViewMorphism m n a c -> ViewMorphism m n b c -> ViewMorphism m n (a, b) c
- toZipViewMorphism :: forall m n a b c. (Semialign n, Semigroup (m c)) => ViewHalfMorphism m n a c -> ViewHalfMorphism m n b c -> ViewHalfMorphism m n (a, b) c
- fromZipViewMorphism :: forall m n a b c. (Applicative m, Semigroup (n (ViewQueryResult c))) => ViewHalfMorphism m n c a -> ViewHalfMorphism m n c b -> ViewHalfMorphism m n c (a, b)
- queryViewMorphism :: forall t (p :: *) (q :: *) m partial. (Reflex t, MonadQuery t q m, Monad m, QueryResult q ~ ViewQueryResult q) => p -> Dynamic t (ViewMorphism Identity partial p q) -> m (Dynamic t (partial (ViewQueryResult p)))
Documentation
type family ViewQueryResult (v :: k) :: k Source #
Instances
type ViewQueryResult ((a, b) :: Type) Source # | |
Defined in Data.Vessel.ViewMorphism | |
type ViewQueryResult (Vessel v g :: Type) Source # | |
Defined in Data.Vessel.Vessel | |
type ViewQueryResult (SingleV a (Const g :: Type -> Type) :: Type) Source # | |
Defined in Data.Vessel.Single | |
type ViewQueryResult (IdentityV a (Const g :: Type -> Type) :: Type) Source # | |
Defined in Data.Vessel.Identity | |
type ViewQueryResult (Const g x :: Type) Source # | |
Defined in Data.Vessel.ViewMorphism | |
type ViewQueryResult (SubVessel k v g :: Type) Source # | |
Defined in Data.Vessel.SubVessel | |
type ViewQueryResult (MapV k2 v g :: Type) Source # | |
Defined in Data.Vessel.Map | |
type ViewQueryResult (Const g :: Type -> Type) Source # | |
Defined in Data.Vessel.ViewMorphism |
data ViewHalfMorphism m n p q Source #
ViewHalfMorphism | |
|
Instances
(Monad m, Monad n) => Category (ViewHalfMorphism n m :: Type -> Type -> Type) Source # | |
Defined in Data.Vessel.ViewMorphism id :: ViewHalfMorphism n m a a # (.) :: ViewHalfMorphism n m b c -> ViewHalfMorphism n m a b -> ViewHalfMorphism n m a c # | |
(Semigroup (m b), Semigroup (n (ViewQueryResult a))) => Semigroup (ViewHalfMorphism m n a b) Source # | |
Defined in Data.Vessel.ViewMorphism (<>) :: ViewHalfMorphism m n a b -> ViewHalfMorphism m n a b -> ViewHalfMorphism m n a b # sconcat :: NonEmpty (ViewHalfMorphism m n a b) -> ViewHalfMorphism m n a b # stimes :: Integral b0 => b0 -> ViewHalfMorphism m n a b -> ViewHalfMorphism m n a b # | |
(Monoid (m b), Monoid (n (ViewQueryResult a))) => Monoid (ViewHalfMorphism m n a b) Source # | |
Defined in Data.Vessel.ViewMorphism mempty :: ViewHalfMorphism m n a b # mappend :: ViewHalfMorphism m n a b -> ViewHalfMorphism m n a b -> ViewHalfMorphism m n a b # mconcat :: [ViewHalfMorphism m n a b] -> ViewHalfMorphism m n a b # |
data ViewMorphism m n p q Source #
ViewMorphism | |
|
Instances
(Monad m, Monad n) => Category (ViewMorphism m n :: Type -> Type -> Type) Source # | |
Defined in Data.Vessel.ViewMorphism id :: ViewMorphism m n a a # (.) :: ViewMorphism m n b c -> ViewMorphism m n a b -> ViewMorphism m n a c # | |
(Semigroup (m b), Semigroup (m (ViewQueryResult b)), Semigroup (n a), Semigroup (n (ViewQueryResult a))) => Semigroup (ViewMorphism m n a b) Source # | |
Defined in Data.Vessel.ViewMorphism (<>) :: ViewMorphism m n a b -> ViewMorphism m n a b -> ViewMorphism m n a b # sconcat :: NonEmpty (ViewMorphism m n a b) -> ViewMorphism m n a b # stimes :: Integral b0 => b0 -> ViewMorphism m n a b -> ViewMorphism m n a b # | |
(Monoid (m b), Monoid (m (ViewQueryResult b)), Monoid (n a), Monoid (n (ViewQueryResult a))) => Monoid (ViewMorphism m n a b) Source # | |
Defined in Data.Vessel.ViewMorphism mempty :: ViewMorphism m n a b # mappend :: ViewMorphism m n a b -> ViewMorphism m n a b -> ViewMorphism m n a b # mconcat :: [ViewMorphism m n a b] -> ViewMorphism m n a b # |
zipViewMorphism :: (Semigroup (m c), Semigroup (m (ViewQueryResult c)), Semialign n, Applicative n) => ViewMorphism m n a c -> ViewMorphism m n b c -> ViewMorphism m n (a, b) c Source #
query for two things simultaneously, return as much result as is available.
toZipViewMorphism :: forall m n a b c. (Semialign n, Semigroup (m c)) => ViewHalfMorphism m n a c -> ViewHalfMorphism m n b c -> ViewHalfMorphism m n (a, b) c Source #
fromZipViewMorphism :: forall m n a b c. (Applicative m, Semigroup (n (ViewQueryResult c))) => ViewHalfMorphism m n c a -> ViewHalfMorphism m n c b -> ViewHalfMorphism m n c (a, b) Source #
queryViewMorphism :: forall t (p :: *) (q :: *) m partial. (Reflex t, MonadQuery t q m, Monad m, QueryResult q ~ ViewQueryResult q) => p -> Dynamic t (ViewMorphism Identity partial p q) -> m (Dynamic t (partial (ViewQueryResult p))) Source #