subzero-0.1.0.8: Helps when going "seed values" -> alternatives and optional -> answers

Copyright(c) Tristan Wibberley Eric Mertens 2017
LicenseGPL-2
Maintainertristan.wibberley@gmail.com
Stabilityexperimental
Safe HaskellSafe
LanguageHaskell2010

Data.Map.IMap

Description

 

Synopsis

Documentation

data IMap m v Source #

An applicative map that discards mismatched keys ie, it uses intersection for it's applicative instance

It has a case in which every key is occupied and equal

Instances

IsMap m => Functor (IMap m) Source # 

Methods

fmap :: (a -> b) -> IMap m a -> IMap m b #

(<$) :: a -> IMap m b -> IMap m a #

IsMap m => Applicative (IMap m) Source # 

Methods

pure :: a -> IMap m a #

(<*>) :: IMap m (a -> b) -> IMap m a -> IMap m b #

(*>) :: IMap m a -> IMap m b -> IMap m b #

(<*) :: IMap m a -> IMap m b -> IMap m a #

IsMap m => IsMap (IMap m) Source # 

Associated Types

type Key (IMap m :: * -> *) :: * Source #

Methods

fromList :: [(Key (IMap m), v)] -> IMap m v Source #

intersectionWith :: (a -> b -> c) -> IMap m a -> IMap m b -> IMap m c Source #

mapmap :: (a -> b) -> IMap m a -> IMap m b Source #

(Eq (m v), Eq v) => Eq (IMap m v) Source # 

Methods

(==) :: IMap m v -> IMap m v -> Bool #

(/=) :: IMap m v -> IMap m v -> Bool #

(Show (m v), Show v) => Show (IMap m v) Source # 

Methods

showsPrec :: Int -> IMap m v -> ShowS #

show :: IMap m v -> String #

showList :: [IMap m v] -> ShowS #

type Key (IMap m) Source # 
type Key (IMap m) = Key m

class IsMap m where Source #

A class for maps so IMap can be generic

Minimal complete definition

fromList, intersectionWith, mapmap

Associated Types

type Key m Source #

Methods

fromList :: [(Key m, v)] -> m v Source #

intersectionWith :: (a -> b -> c) -> m a -> m b -> m c Source #

mapmap :: (a -> b) -> m a -> m b Source #

Instances

IsMap IntMap Source # 

Associated Types

type Key (IntMap :: * -> *) :: * Source #

Methods

fromList :: [(Key IntMap, v)] -> IntMap v Source #

intersectionWith :: (a -> b -> c) -> IntMap a -> IntMap b -> IntMap c Source #

mapmap :: (a -> b) -> IntMap a -> IntMap b Source #

Ord k => IsMap (Map k) Source # 

Associated Types

type Key (Map k :: * -> *) :: * Source #

Methods

fromList :: [(Key (Map k), v)] -> Map k v Source #

intersectionWith :: (a -> b -> c) -> Map k a -> Map k b -> Map k c Source #

mapmap :: (a -> b) -> Map k a -> Map k b Source #

IsMap m => IsMap (IMap m) Source # 

Associated Types

type Key (IMap m :: * -> *) :: * Source #

Methods

fromList :: [(Key (IMap m), v)] -> IMap m v Source #

intersectionWith :: (a -> b -> c) -> IMap m a -> IMap m b -> IMap m c Source #

mapmap :: (a -> b) -> IMap m a -> IMap m b Source #

fromList :: IsMap m => [(Key m, v)] -> m v Source #

intersectionWith :: IsMap m => (a -> b -> c) -> m a -> m b -> m c Source #

mapmap :: IsMap m => (a -> b) -> m a -> m b Source #