-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | bijections with multiple implementations.
--
-- Bijections between sets of values.
@package bimaps
@version 0.0.0.4
module Data.Bijection.Class
class Bijection z where type family ContL z :: * type family ContR z :: * type family ElemL z :: * type family ElemR z :: * memberL = (maybe False (const True) .) . lookupL memberR = (maybe False (const True) .) . lookupR
contL :: Bijection z => z -> ContL z
contR :: Bijection z => z -> ContR z
memberL :: Bijection z => z -> ElemL z -> Bool
memberR :: Bijection z => z -> ElemR z -> Bool
lookupL :: Bijection z => z -> ElemL z -> Maybe (ElemR z)
lookupR :: Bijection z => z -> ElemR z -> Maybe (ElemL z)
empty :: Bijection z => z
null :: Bijection z => z -> Bool
size :: Bijection z => z -> Int
fromList :: Bijection z => [(ElemL z, ElemR z)] -> z
toList :: Bijection z => z -> [(ElemL z, ElemR z)]
insert :: Bijection z => z -> (ElemL z, ElemR z) -> z
deleteByL :: Bijection z => z -> ElemL z -> z
deleteByR :: Bijection z => z -> ElemR z -> z
findWithDefaultL :: Bijection z => ElemR z -> z -> ElemL z -> ElemR z
findWithDefaultR :: Bijection z => ElemL z -> z -> ElemR z -> ElemL z
module Data.Bijection.Hash
-- | A bijection between values of type l and type r.
data Bimap l r
instance GHC.Generics.Constructor Data.Bijection.Hash.C1_0Bimap
instance GHC.Generics.Datatype Data.Bijection.Hash.D1Bimap
instance GHC.Generics.Generic (Data.Bijection.Hash.Bimap l r)
instance (GHC.Classes.Eq l, GHC.Classes.Eq r) => GHC.Classes.Eq (Data.Bijection.Hash.Bimap l r)
instance (GHC.Show.Show l, GHC.Show.Show r) => GHC.Show.Show (Data.Bijection.Hash.Bimap l r)
instance (GHC.Classes.Eq l, GHC.Classes.Eq r, GHC.Read.Read l, GHC.Read.Read r, Data.Hashable.Class.Hashable l, Data.Hashable.Class.Hashable r) => GHC.Read.Read (Data.Bijection.Hash.Bimap l r)
instance (GHC.Classes.Eq l, GHC.Classes.Eq r, Data.Hashable.Class.Hashable l, Data.Hashable.Class.Hashable r) => Data.Bijection.Class.Bijection (Data.Bijection.Hash.Bimap l r)
instance (Control.DeepSeq.NFData l, Control.DeepSeq.NFData r) => Control.DeepSeq.NFData (Data.Bijection.Hash.Bimap l r)
instance (Data.Binary.Class.Binary (Data.HashMap.Base.HashMap l r), Data.Binary.Class.Binary (Data.HashMap.Base.HashMap r l)) => Data.Binary.Class.Binary (Data.Bijection.Hash.Bimap l r)
instance (GHC.Classes.Ord l, GHC.Classes.Ord r, Data.Serialize.Serialize (Data.HashMap.Base.HashMap l r), Data.Serialize.Serialize (Data.HashMap.Base.HashMap r l)) => Data.Serialize.Serialize (Data.Bijection.Hash.Bimap l r)
instance (Data.Aeson.Types.Class.ToJSON (Data.HashMap.Base.HashMap l r), Data.Aeson.Types.Class.ToJSON (Data.HashMap.Base.HashMap r l)) => Data.Aeson.Types.Class.ToJSON (Data.Bijection.Hash.Bimap l r)
instance (Data.Aeson.Types.Class.FromJSON (Data.HashMap.Base.HashMap l r), Data.Aeson.Types.Class.FromJSON (Data.HashMap.Base.HashMap r l)) => Data.Aeson.Types.Class.FromJSON (Data.Bijection.Hash.Bimap l r)
-- | Bijections via strict maps.
module Data.Bijection.Map
-- | A bijection between values of type l and type r,
-- implemented via strict maps.
data Bimap l r
instance GHC.Generics.Constructor Data.Bijection.Map.C1_0Bimap
instance GHC.Generics.Datatype Data.Bijection.Map.D1Bimap
instance GHC.Generics.Generic (Data.Bijection.Map.Bimap l r)
instance (GHC.Classes.Eq l, GHC.Classes.Eq r) => GHC.Classes.Eq (Data.Bijection.Map.Bimap l r)
instance (GHC.Show.Show l, GHC.Show.Show r) => GHC.Show.Show (Data.Bijection.Map.Bimap l r)
instance (GHC.Classes.Ord l, GHC.Classes.Ord r, GHC.Read.Read l, GHC.Read.Read r) => GHC.Read.Read (Data.Bijection.Map.Bimap l r)
instance (GHC.Classes.Ord l, GHC.Classes.Ord r) => Data.Bijection.Class.Bijection (Data.Bijection.Map.Bimap l r)
instance (Control.DeepSeq.NFData l, Control.DeepSeq.NFData r) => Control.DeepSeq.NFData (Data.Bijection.Map.Bimap l r)
instance (Data.Binary.Class.Binary l, Data.Binary.Class.Binary r) => Data.Binary.Class.Binary (Data.Bijection.Map.Bimap l r)
instance (GHC.Classes.Ord l, GHC.Classes.Ord r, Data.Serialize.Serialize l, Data.Serialize.Serialize r) => Data.Serialize.Serialize (Data.Bijection.Map.Bimap l r)
instance (Data.Aeson.Types.Class.ToJSON (Data.Map.Base.Map l r), Data.Aeson.Types.Class.ToJSON (Data.Map.Base.Map r l)) => Data.Aeson.Types.Class.ToJSON (Data.Bijection.Map.Bimap l r)
instance (Data.Aeson.Types.Class.FromJSON (Data.Map.Base.Map l r), Data.Aeson.Types.Class.FromJSON (Data.Map.Base.Map r l)) => Data.Aeson.Types.Class.FromJSON (Data.Bijection.Map.Bimap l r)
-- | A bijection between boxed, immutable vectors.
module Data.Bijection.Vector
data Bimap l r
instance GHC.Generics.Constructor Data.Bijection.Vector.C1_0Bimap
instance GHC.Generics.Datatype Data.Bijection.Vector.D1Bimap
instance GHC.Generics.Generic (Data.Bijection.Vector.Bimap l r)
instance (GHC.Classes.Eq l, GHC.Classes.Eq r) => GHC.Classes.Eq (Data.Bijection.Vector.Bimap l r)
instance (GHC.Show.Show l, GHC.Show.Show r) => GHC.Show.Show (Data.Bijection.Vector.Bimap l r)
instance (GHC.Read.Read l, GHC.Read.Read r) => GHC.Read.Read (Data.Bijection.Vector.Bimap l r)
instance (GHC.Classes.Eq l, GHC.Classes.Eq r) => Data.Bijection.Class.Bijection (Data.Bijection.Vector.Bimap l r)
instance (Control.DeepSeq.NFData l, Control.DeepSeq.NFData r) => Control.DeepSeq.NFData (Data.Bijection.Vector.Bimap l r)
instance (Data.Binary.Class.Binary l, Data.Binary.Class.Binary r) => Data.Binary.Class.Binary (Data.Bijection.Vector.Bimap l r)
instance (Data.Serialize.Serialize l, Data.Serialize.Serialize r) => Data.Serialize.Serialize (Data.Bijection.Vector.Bimap l r)
instance (Data.Aeson.Types.Class.ToJSON l, Data.Aeson.Types.Class.ToJSON r) => Data.Aeson.Types.Class.ToJSON (Data.Bijection.Vector.Bimap l r)
instance (Data.Aeson.Types.Class.FromJSON l, Data.Aeson.Types.Class.FromJSON r) => Data.Aeson.Types.Class.FromJSON (Data.Bijection.Vector.Bimap l r)
-- | A bijection between boxed, immutable vectors.
module Data.Bijection.Vector.Unboxed
data Bimap l r
instance GHC.Generics.Constructor Data.Bijection.Vector.Unboxed.C1_0Bimap
instance GHC.Generics.Datatype Data.Bijection.Vector.Unboxed.D1Bimap
instance GHC.Generics.Generic (Data.Bijection.Vector.Unboxed.Bimap l r)
instance (GHC.Classes.Eq l, GHC.Classes.Eq r, Data.Vector.Unboxed.Base.Unbox l, Data.Vector.Unboxed.Base.Unbox r) => GHC.Classes.Eq (Data.Bijection.Vector.Unboxed.Bimap l r)
instance (GHC.Show.Show l, GHC.Show.Show r, Data.Vector.Unboxed.Base.Unbox l, Data.Vector.Unboxed.Base.Unbox r) => GHC.Show.Show (Data.Bijection.Vector.Unboxed.Bimap l r)
instance (GHC.Read.Read l, GHC.Read.Read r, Data.Vector.Unboxed.Base.Unbox l, Data.Vector.Unboxed.Base.Unbox r) => GHC.Read.Read (Data.Bijection.Vector.Unboxed.Bimap l r)
instance (GHC.Classes.Eq l, GHC.Classes.Eq r, Data.Vector.Unboxed.Base.Unbox l, Data.Vector.Unboxed.Base.Unbox r) => Data.Bijection.Class.Bijection (Data.Bijection.Vector.Unboxed.Bimap l r)
instance (Control.DeepSeq.NFData l, Control.DeepSeq.NFData r) => Control.DeepSeq.NFData (Data.Bijection.Vector.Unboxed.Bimap l r)
instance (Data.Vector.Unboxed.Base.Unbox l, Data.Vector.Unboxed.Base.Unbox r, Data.Binary.Class.Binary l, Data.Binary.Class.Binary r) => Data.Binary.Class.Binary (Data.Bijection.Vector.Unboxed.Bimap l r)
instance (Data.Vector.Unboxed.Base.Unbox l, Data.Vector.Unboxed.Base.Unbox r, Data.Serialize.Serialize l, Data.Serialize.Serialize r) => Data.Serialize.Serialize (Data.Bijection.Vector.Unboxed.Bimap l r)
instance (Data.Vector.Unboxed.Base.Unbox l, Data.Vector.Unboxed.Base.Unbox r, Data.Aeson.Types.Class.ToJSON l, Data.Aeson.Types.Class.ToJSON r) => Data.Aeson.Types.Class.ToJSON (Data.Bijection.Vector.Unboxed.Bimap l r)
instance (Data.Vector.Unboxed.Base.Unbox l, Data.Vector.Unboxed.Base.Unbox r, Data.Aeson.Types.Class.FromJSON l, Data.Aeson.Types.Class.FromJSON r) => Data.Aeson.Types.Class.FromJSON (Data.Bijection.Vector.Unboxed.Bimap l r)
-- | A bijection between boxed, immutable vectors.
module Data.Bijection.Vector.Storable
data Bimap l r
instance GHC.Generics.Constructor Data.Bijection.Vector.Storable.C1_0Bimap
instance GHC.Generics.Datatype Data.Bijection.Vector.Storable.D1Bimap
instance GHC.Generics.Generic (Data.Bijection.Vector.Storable.Bimap l r)
instance (GHC.Classes.Eq l, GHC.Classes.Eq r, Foreign.Storable.Storable l, Foreign.Storable.Storable r) => GHC.Classes.Eq (Data.Bijection.Vector.Storable.Bimap l r)
instance (GHC.Show.Show l, GHC.Show.Show r, Foreign.Storable.Storable l, Foreign.Storable.Storable r) => GHC.Show.Show (Data.Bijection.Vector.Storable.Bimap l r)
instance (GHC.Read.Read l, GHC.Read.Read r, Foreign.Storable.Storable l, Foreign.Storable.Storable r) => GHC.Read.Read (Data.Bijection.Vector.Storable.Bimap l r)
instance (GHC.Classes.Eq l, GHC.Classes.Eq r, Foreign.Storable.Storable l, Foreign.Storable.Storable r, Foreign.Storable.Storable (l, r)) => Data.Bijection.Class.Bijection (Data.Bijection.Vector.Storable.Bimap l r)
instance (Control.DeepSeq.NFData l, Control.DeepSeq.NFData r) => Control.DeepSeq.NFData (Data.Bijection.Vector.Storable.Bimap l r)
instance (Foreign.Storable.Storable l, Foreign.Storable.Storable r, Data.Binary.Class.Binary l, Data.Binary.Class.Binary r) => Data.Binary.Class.Binary (Data.Bijection.Vector.Storable.Bimap l r)
instance (Foreign.Storable.Storable l, Foreign.Storable.Storable r, Data.Serialize.Serialize l, Data.Serialize.Serialize r) => Data.Serialize.Serialize (Data.Bijection.Vector.Storable.Bimap l r)
instance (Foreign.Storable.Storable l, Foreign.Storable.Storable r, Data.Aeson.Types.Class.ToJSON l, Data.Aeson.Types.Class.ToJSON r) => Data.Aeson.Types.Class.ToJSON (Data.Bijection.Vector.Storable.Bimap l r)
instance (Foreign.Storable.Storable l, Foreign.Storable.Storable r, Data.Aeson.Types.Class.FromJSON l, Data.Aeson.Types.Class.FromJSON r) => Data.Aeson.Types.Class.FromJSON (Data.Bijection.Vector.Storable.Bimap l r)