-- 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)