vessel-0.1.0.0: Functor-parametric containers
Safe HaskellNone
LanguageHaskell2010

Data.Vessel.Map

Synopsis

Documentation

newtype MapV k v g Source #

A functor-indexed container corresponding to Map k v.

Constructors

MapV 

Fields

Instances

Instances details
Ord k => EmptyView (MapV k v) Source # 
Instance details

Defined in Data.Vessel.Map

Methods

emptyV :: forall (f :: Type -> Type). MapV k v f Source #

Ord k => View (MapV k v) Source # 
Instance details

Defined in Data.Vessel.Map

Methods

condenseV :: forall t (g :: Type -> Type). (Foldable t, Filterable t, Functor t) => t (MapV k v g) -> MapV k v (Compose t g) Source #

disperseV :: forall t (g :: Type -> Type). Align t => MapV k v (Compose t g) -> t (MapV k v g) Source #

cropV :: (forall a. s a -> i a -> r a) -> MapV k v s -> MapV k v i -> Maybe (MapV k v r) Source #

nullV :: forall (i :: Type -> Type). MapV k v i -> Bool Source #

mapV :: (forall a. f a -> g a) -> MapV k v f -> MapV k v g Source #

traverseV :: Applicative m => (forall a. f a -> m (g a)) -> MapV k v f -> m (MapV k v g) Source #

mapMaybeV :: (forall a. f a -> Maybe (g a)) -> MapV k v f -> Maybe (MapV k v g) Source #

alignWithMaybeV :: (forall a. These (f a) (g a) -> Maybe (h a)) -> MapV k v f -> MapV k v g -> Maybe (MapV k v h) Source #

alignWithV :: (forall a. These (f a) (g a) -> h a) -> MapV k v f -> MapV k v g -> MapV k v h Source #

Ord k => Selectable (MapV k v) (Identity k) Source # 
Instance details

Defined in Data.Vessel.Map

Associated Types

type Selection (MapV k v) (Identity k) Source #

Methods

selector :: (forall a. p a) -> Identity k -> MapV k v p Source #

selection :: Identity k -> MapV k v Identity -> Selection (MapV k v) (Identity k) Source #

Ord k => Selectable (MapV k v) (Set k) Source # 
Instance details

Defined in Data.Vessel.Map

Associated Types

type Selection (MapV k v) (Set k) Source #

Methods

selector :: (forall a. p a) -> Set k -> MapV k v p Source #

selection :: Set k -> MapV k v Identity -> Selection (MapV k v) (Set k) Source #

(Eq k1, Eq (g v)) => Eq (MapV k1 v g) Source # 
Instance details

Defined in Data.Vessel.Map

Methods

(==) :: MapV k1 v g -> MapV k1 v g -> Bool #

(/=) :: MapV k1 v g -> MapV k1 v g -> Bool #

(Ord k1, Ord (g v)) => Ord (MapV k1 v g) Source # 
Instance details

Defined in Data.Vessel.Map

Methods

compare :: MapV k1 v g -> MapV k1 v g -> Ordering #

(<) :: MapV k1 v g -> MapV k1 v g -> Bool #

(<=) :: MapV k1 v g -> MapV k1 v g -> Bool #

(>) :: MapV k1 v g -> MapV k1 v g -> Bool #

(>=) :: MapV k1 v g -> MapV k1 v g -> Bool #

max :: MapV k1 v g -> MapV k1 v g -> MapV k1 v g #

min :: MapV k1 v g -> MapV k1 v g -> MapV k1 v g #

(Ord k1, Read k1, Read (g v)) => Read (MapV k1 v g) Source # 
Instance details

Defined in Data.Vessel.Map

Methods

readsPrec :: Int -> ReadS (MapV k1 v g) #

readList :: ReadS [MapV k1 v g] #

readPrec :: ReadPrec (MapV k1 v g) #

readListPrec :: ReadPrec [MapV k1 v g] #

(Show k1, Show (g v)) => Show (MapV k1 v g) Source # 
Instance details

Defined in Data.Vessel.Map

Methods

showsPrec :: Int -> MapV k1 v g -> ShowS #

show :: MapV k1 v g -> String #

showList :: [MapV k1 v g] -> ShowS #

Generic (MapV k1 v g) Source # 
Instance details

Defined in Data.Vessel.Map

Associated Types

type Rep (MapV k1 v g) :: Type -> Type #

Methods

from :: MapV k1 v g -> Rep (MapV k1 v g) x #

to :: Rep (MapV k1 v g) x -> MapV k1 v g #

(Ord k1, Ord k2, Semigroup v) => Semigroup (MapV k1 v (Compose (MonoidalMap k2) Identity)) Source # 
Instance details

Defined in Data.Vessel.Map

(Semigroup v, Ord k) => Semigroup (MapV k v Identity) Source # 
Instance details

Defined in Data.Vessel.Map

Methods

(<>) :: MapV k v Identity -> MapV k v Identity -> MapV k v Identity #

sconcat :: NonEmpty (MapV k v Identity) -> MapV k v Identity #

stimes :: Integral b => b -> MapV k v Identity -> MapV k v Identity #

(Ord k1, Ord k2, Monoid g, Eq g) => Semigroup (MapV k1 v (Compose (MonoidalMap k2) (Const g :: k -> Type))) Source # 
Instance details

Defined in Data.Vessel.Map

Methods

(<>) :: MapV k1 v (Compose (MonoidalMap k2) (Const g)) -> MapV k1 v (Compose (MonoidalMap k2) (Const g)) -> MapV k1 v (Compose (MonoidalMap k2) (Const g)) #

sconcat :: NonEmpty (MapV k1 v (Compose (MonoidalMap k2) (Const g))) -> MapV k1 v (Compose (MonoidalMap k2) (Const g)) #

stimes :: Integral b => b -> MapV k1 v (Compose (MonoidalMap k2) (Const g)) -> MapV k1 v (Compose (MonoidalMap k2) (Const g)) #

(Ord k2, Eq g, Monoid g) => Semigroup (MapV k2 v (Const g :: k1 -> Type)) Source # 
Instance details

Defined in Data.Vessel.Map

Methods

(<>) :: MapV k2 v (Const g) -> MapV k2 v (Const g) -> MapV k2 v (Const g) #

sconcat :: NonEmpty (MapV k2 v (Const g)) -> MapV k2 v (Const g) #

stimes :: Integral b => b -> MapV k2 v (Const g) -> MapV k2 v (Const g) #

(Semigroup v, Ord k) => Monoid (MapV k v Identity) Source # 
Instance details

Defined in Data.Vessel.Map

Methods

mempty :: MapV k v Identity #

mappend :: MapV k v Identity -> MapV k v Identity -> MapV k v Identity #

mconcat :: [MapV k v Identity] -> MapV k v Identity #

(Ord k1, Ord k2, Monoid g, Eq g) => Monoid (MapV k1 v (Compose (MonoidalMap k2) (Const g :: k -> Type))) Source # 
Instance details

Defined in Data.Vessel.Map

Methods

mempty :: MapV k1 v (Compose (MonoidalMap k2) (Const g)) #

mappend :: MapV k1 v (Compose (MonoidalMap k2) (Const g)) -> MapV k1 v (Compose (MonoidalMap k2) (Const g)) -> MapV k1 v (Compose (MonoidalMap k2) (Const g)) #

mconcat :: [MapV k1 v (Compose (MonoidalMap k2) (Const g))] -> MapV k1 v (Compose (MonoidalMap k2) (Const g)) #

(Ord k2, Eq g, Monoid g) => Monoid (MapV k2 v (Const g :: k1 -> Type)) Source # 
Instance details

Defined in Data.Vessel.Map

Methods

mempty :: MapV k2 v (Const g) #

mappend :: MapV k2 v (Const g) -> MapV k2 v (Const g) -> MapV k2 v (Const g) #

mconcat :: [MapV k2 v (Const g)] -> MapV k2 v (Const g) #

(ToJSONKey k2, ToJSON (g v), Ord k2) => ToJSON (MapV k2 v g) Source # 
Instance details

Defined in Data.Vessel.Map

Methods

toJSON :: MapV k2 v g -> Value #

toEncoding :: MapV k2 v g -> Encoding #

toJSONList :: [MapV k2 v g] -> Value #

toEncodingList :: [MapV k2 v g] -> Encoding #

(FromJSONKey k2, FromJSON (g v), Ord k2) => FromJSON (MapV k2 v g) Source # 
Instance details

Defined in Data.Vessel.Map

Methods

parseJSON :: Value -> Parser (MapV k2 v g) #

parseJSONList :: Value -> Parser [MapV k2 v g] #

(Ord k1, Ord k2, Group g, Eq g) => Group (MapV k1 v (Compose (MonoidalMap k2) (Const g :: k -> Type))) Source # 
Instance details

Defined in Data.Vessel.Map

Methods

negateG :: MapV k1 v (Compose (MonoidalMap k2) (Const g)) -> MapV k1 v (Compose (MonoidalMap k2) (Const g)) #

(~~) :: MapV k1 v (Compose (MonoidalMap k2) (Const g)) -> MapV k1 v (Compose (MonoidalMap k2) (Const g)) -> MapV k1 v (Compose (MonoidalMap k2) (Const g)) #

(Ord k2, Eq g, Group g) => Group (MapV k2 v (Const g :: k1 -> Type)) Source # 
Instance details

Defined in Data.Vessel.Map

Methods

negateG :: MapV k2 v (Const g) -> MapV k2 v (Const g) #

(~~) :: MapV k2 v (Const g) -> MapV k2 v (Const g) -> MapV k2 v (Const g) #

(Ord k1, Ord k2, Additive g, Group g, Eq g) => Additive (MapV k1 v (Compose (MonoidalMap k2) (Const g :: k -> Type))) Source # 
Instance details

Defined in Data.Vessel.Map

(Ord k2, Eq g, Group g, Additive g) => Additive (MapV k2 v (Const g :: k1 -> Type)) Source # 
Instance details

Defined in Data.Vessel.Map

type ViewQueryResult (MapV k2 v g :: Type) Source # 
Instance details

Defined in Data.Vessel.Map

type ViewQueryResult (MapV k2 v g :: Type) = MapV k2 v (ViewQueryResult g)
type Selection (MapV k v) (Identity k) Source # 
Instance details

Defined in Data.Vessel.Map

type Selection (MapV k v) (Identity k) = Maybe v
type Selection (MapV k v) (Set k) Source # 
Instance details

Defined in Data.Vessel.Map

type Selection (MapV k v) (Set k) = MonoidalMap k v
type Rep (MapV k1 v g) Source # 
Instance details

Defined in Data.Vessel.Map

type Rep (MapV k1 v g) = D1 ('MetaData "MapV" "Data.Vessel.Map" "vessel-0.1.0.0-L81NXpc2nSw1m63K9xevMw" 'True) (C1 ('MetaCons "MapV" 'PrefixI 'True) (S1 ('MetaSel ('Just "unMapV") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (MonoidalMap k1 (g v)))))

singletonMapV :: k -> g v -> MapV k v g Source #

lookupMapV :: Ord k => k -> MapV k v g -> Maybe (g v) Source #

mapVMorphism :: (Ord k, ViewQueryResult (g v) ~ ViewQueryResult g v, Alternative n, Applicative m) => k -> ViewMorphism m n (g v) (MapV k v g) Source #

mapVWildcardMorphism :: (Semigroup (g v), Semigroup (ViewQueryResult g v), ViewQueryResult (g v) ~ ViewQueryResult g v, Alternative n, Applicative m) => ViewMorphism m n (g v) (MapV k v g) Source #

Match whatever's present in the View, insert nothing.

handleMapVSelector :: forall a f g k m. (Ord k, Functor m) => (forall x. x -> f x -> g x) -> (Set k -> m (MonoidalMap k a)) -> MapV k a f -> m (MapV k a g) Source #

A gadget to "traverse" over all of the keys in a MapV in one step

mapMapWithKeyV :: (k -> f a -> g a) -> MapV k a f -> MapV k a g Source #

Non-existentialized mapV; since the contained value is known