Safe Haskell | None |
---|---|
Language | Haskell2010 |
Data.Bijection.Class
Synopsis
- data Bimap l r = Bimap !l !r
- class DomCod z where
- type DomCodCnt l r = (DomCod l, DomCod r, Dom l ~ Cod r, Dom r ~ Cod l)
- contL :: Bimap l r -> l
- contR :: Bimap l r -> r
- memberL :: DomCod l => Bimap l r -> Dom l -> Bool
- memberR :: DomCod r => Bimap l r -> Dom r -> Bool
- lookupL :: DomCod l => Bimap l r -> Dom l -> Maybe (Cod l)
- lookupR :: DomCod r => Bimap l r -> Dom r -> Maybe (Cod r)
- empty :: DomCodCnt l r => Bimap l r
- null :: DomCod l => Bimap l r -> Bool
- size :: DomCod l => Bimap l r -> Int
- fromList :: DomCodCnt l r => [(Dom l, Dom r)] -> Bimap l r
- toList :: DomCodCnt l r => Bimap l r -> [(Dom l, Dom r)]
- insert :: DomCodCnt l r => Bimap l r -> (Dom l, Cod l) -> Bimap l r
- deleteByL :: DomCodCnt l r => Bimap l r -> Dom l -> Bimap l r
- deleteByR :: DomCodCnt l r => Bimap l r -> Dom r -> Bimap l r
- findWithDefaultL :: DomCodCnt l r => Cod l -> Bimap l r -> Dom l -> Cod l
- findWithDefaultR :: DomCodCnt l r => Cod r -> Bimap l r -> Dom r -> Cod r
Documentation
Bijection between finite sets.
Both data types are strict here.
Constructors
Bimap !l !r |
Instances
Methods
member :: z -> Dom z -> Bool Source #
lookup :: z -> Dom z -> Maybe (Cod z) Source #
deleteDC :: z -> Dom z -> Maybe (Cod z, z) Source #
insertDC :: z -> (Dom z, Cod z) -> z Source #
toListDC :: z -> [(Dom z, Cod z)] Source #
fromListDC :: [(Dom z, Cod z)] -> z Source #
Instances
DomCod (Vector c) Source # | |||||||||
Defined in Data.Bijection.Vector Associated Types
Methods member :: Vector c -> Dom (Vector c) -> Bool Source # lookup :: Vector c -> Dom (Vector c) -> Maybe (Cod (Vector c)) Source # deleteDC :: Vector c -> Dom (Vector c) -> Maybe (Cod (Vector c), Vector c) Source # insertDC :: Vector c -> (Dom (Vector c), Cod (Vector c)) -> Vector c Source # toListDC :: Vector c -> [(Dom (Vector c), Cod (Vector c))] Source # nullDC :: Vector c -> Bool Source # sizeDC :: Vector c -> Int Source # fromListDC :: [(Dom (Vector c), Cod (Vector c))] -> Vector c Source # | |||||||||
Storable c => DomCod (Vector c) Source # | |||||||||
Defined in Data.Bijection.Vector.Storable Associated Types
Methods member :: Vector c -> Dom (Vector c) -> Bool Source # lookup :: Vector c -> Dom (Vector c) -> Maybe (Cod (Vector c)) Source # deleteDC :: Vector c -> Dom (Vector c) -> Maybe (Cod (Vector c), Vector c) Source # insertDC :: Vector c -> (Dom (Vector c), Cod (Vector c)) -> Vector c Source # toListDC :: Vector c -> [(Dom (Vector c), Cod (Vector c))] Source # nullDC :: Vector c -> Bool Source # sizeDC :: Vector c -> Int Source # fromListDC :: [(Dom (Vector c), Cod (Vector c))] -> Vector c Source # | |||||||||
Unbox c => DomCod (Vector c) Source # | |||||||||
Defined in Data.Bijection.Vector.Unboxed Associated Types
Methods member :: Vector c -> Dom (Vector c) -> Bool Source # lookup :: Vector c -> Dom (Vector c) -> Maybe (Cod (Vector c)) Source # deleteDC :: Vector c -> Dom (Vector c) -> Maybe (Cod (Vector c), Vector c) Source # insertDC :: Vector c -> (Dom (Vector c), Cod (Vector c)) -> Vector c Source # toListDC :: Vector c -> [(Dom (Vector c), Cod (Vector c))] Source # nullDC :: Vector c -> Bool Source # sizeDC :: Vector c -> Int Source # fromListDC :: [(Dom (Vector c), Cod (Vector c))] -> Vector c Source # | |||||||||
(Eq d, Ord d) => DomCod (Map d c) Source # | |||||||||
Defined in Data.Bijection.Map Associated Types
Methods member :: Map d c -> Dom (Map d c) -> Bool Source # lookup :: Map d c -> Dom (Map d c) -> Maybe (Cod (Map d c)) Source # deleteDC :: Map d c -> Dom (Map d c) -> Maybe (Cod (Map d c), Map d c) Source # insertDC :: Map d c -> (Dom (Map d c), Cod (Map d c)) -> Map d c Source # toListDC :: Map d c -> [(Dom (Map d c), Cod (Map d c))] Source # nullDC :: Map d c -> Bool Source # sizeDC :: Map d c -> Int Source # fromListDC :: [(Dom (Map d c), Cod (Map d c))] -> Map d c Source # | |||||||||
(Eq d, Hashable d) => DomCod (HashMap d c) Source # | |||||||||
Defined in Data.Bijection.HashMap Associated Types
Methods member :: HashMap d c -> Dom (HashMap d c) -> Bool Source # lookup :: HashMap d c -> Dom (HashMap d c) -> Maybe (Cod (HashMap d c)) Source # deleteDC :: HashMap d c -> Dom (HashMap d c) -> Maybe (Cod (HashMap d c), HashMap d c) Source # insertDC :: HashMap d c -> (Dom (HashMap d c), Cod (HashMap d c)) -> HashMap d c Source # toListDC :: HashMap d c -> [(Dom (HashMap d c), Cod (HashMap d c))] Source # nullDC :: HashMap d c -> Bool Source # emptyDC :: HashMap d c Source # sizeDC :: HashMap d c -> Int Source # fromListDC :: [(Dom (HashMap d c), Cod (HashMap d c))] -> HashMap d c Source # |