Copyright  (c) Fumiaki Kinoshita 2018 

License  BSD3 
Maintainer  Fumiaki Kinoshita <fumiexcel@gmail.com> 
Safe Haskell  None 
Language  Haskell2010 
Reification of constraints using extensible data types. Also includes orphan instances.
Documentation
library :: forall c xs. Forall c xs => xs :& Comp Dict c Source #
Reify a collection of dictionaries, as you wish.
type WrapForall c h = Forall (Instance1 c h) Source #
Forall upon a wrapper
class c (h x) => Instance1 c h x Source #
Composition for a class and a wrapper
Instances
c (h x) => Instance1 (c :: k2 > Constraint) (h :: k1 > k2) (x :: k1) Source #  
Defined in Data.Extensible.Dictionary 
class (f x, g x) => And f g x Source #
Instances
(f x, g x) => And (f :: k > Constraint) (g :: k > Constraint) (x :: k) Source #  
Defined in Data.Extensible.Dictionary 
Orphan instances
Unbox a => Vector Vector (Identity a) Source #  
basicUnsafeFreeze :: PrimMonad m => Mutable Vector (PrimState m) (Identity a) > m (Vector (Identity a)) basicUnsafeThaw :: PrimMonad m => Vector (Identity a) > m (Mutable Vector (PrimState m) (Identity a)) basicLength :: Vector (Identity a) > Int basicUnsafeSlice :: Int > Int > Vector (Identity a) > Vector (Identity a) basicUnsafeIndexM :: Monad m => Vector (Identity a) > Int > m (Identity a) basicUnsafeCopy :: PrimMonad m => Mutable Vector (PrimState m) (Identity a) > Vector (Identity a) > m ()  
Unbox a => MVector MVector (Identity a) Source #  
basicLength :: MVector s (Identity a) > Int basicUnsafeSlice :: Int > Int > MVector s (Identity a) > MVector s (Identity a) basicOverlaps :: MVector s (Identity a) > MVector s (Identity a) > Bool basicUnsafeNew :: PrimMonad m => Int > m (MVector (PrimState m) (Identity a)) basicInitialize :: PrimMonad m => MVector (PrimState m) (Identity a) > m () basicUnsafeReplicate :: PrimMonad m => Int > Identity a > m (MVector (PrimState m) (Identity a)) basicUnsafeRead :: PrimMonad m => MVector (PrimState m) (Identity a) > Int > m (Identity a) basicUnsafeWrite :: PrimMonad m => MVector (PrimState m) (Identity a) > Int > Identity a > m () basicClear :: PrimMonad m => MVector (PrimState m) (Identity a) > m () basicSet :: PrimMonad m => MVector (PrimState m) (Identity a) > Identity a > m () basicUnsafeCopy :: PrimMonad m => MVector (PrimState m) (Identity a) > MVector (PrimState m) (Identity a) > m () basicUnsafeMove :: PrimMonad m => MVector (PrimState m) (Identity a) > MVector (PrimState m) (Identity a) > m () basicUnsafeGrow :: PrimMonad m => MVector (PrimState m) (Identity a) > Int > m (MVector (PrimState m) (Identity a))  
WrapForall Unbox h (x ': xs) => Vector Vector ((x ': xs) :& h) Source #  
basicUnsafeFreeze :: PrimMonad m => Mutable Vector (PrimState m) ((x ': xs) :& h) > m (Vector ((x ': xs) :& h)) basicUnsafeThaw :: PrimMonad m => Vector ((x ': xs) :& h) > m (Mutable Vector (PrimState m) ((x ': xs) :& h)) basicLength :: Vector ((x ': xs) :& h) > Int basicUnsafeSlice :: Int > Int > Vector ((x ': xs) :& h) > Vector ((x ': xs) :& h) basicUnsafeIndexM :: Monad m => Vector ((x ': xs) :& h) > Int > m ((x ': xs) :& h) basicUnsafeCopy :: PrimMonad m => Mutable Vector (PrimState m) ((x ': xs) :& h) > Vector ((x ': xs) :& h) > m () elemseq :: Vector ((x ': xs) :& h) > ((x ': xs) :& h) > b > b  
WrapForall Unbox h (x ': xs) => MVector MVector ((x ': xs) :& h) Source #  
basicLength :: MVector s ((x ': xs) :& h) > Int basicUnsafeSlice :: Int > Int > MVector s ((x ': xs) :& h) > MVector s ((x ': xs) :& h) basicOverlaps :: MVector s ((x ': xs) :& h) > MVector s ((x ': xs) :& h) > Bool basicUnsafeNew :: PrimMonad m => Int > m (MVector (PrimState m) ((x ': xs) :& h)) basicInitialize :: PrimMonad m => MVector (PrimState m) ((x ': xs) :& h) > m () basicUnsafeReplicate :: PrimMonad m => Int > ((x ': xs) :& h) > m (MVector (PrimState m) ((x ': xs) :& h)) basicUnsafeRead :: PrimMonad m => MVector (PrimState m) ((x ': xs) :& h) > Int > m ((x ': xs) :& h) basicUnsafeWrite :: PrimMonad m => MVector (PrimState m) ((x ': xs) :& h) > Int > ((x ': xs) :& h) > m () basicClear :: PrimMonad m => MVector (PrimState m) ((x ': xs) :& h) > m () basicSet :: PrimMonad m => MVector (PrimState m) ((x ': xs) :& h) > ((x ': xs) :& h) > m () basicUnsafeCopy :: PrimMonad m => MVector (PrimState m) ((x ': xs) :& h) > MVector (PrimState m) ((x ': xs) :& h) > m () basicUnsafeMove :: PrimMonad m => MVector (PrimState m) ((x ': xs) :& h) > MVector (PrimState m) ((x ': xs) :& h) > m () basicUnsafeGrow :: PrimMonad m => MVector (PrimState m) ((x ': xs) :& h) > Int > m (MVector (PrimState m) ((x ': xs) :& h))  
Unbox a => Unbox (Identity a) Source #  
WrapForall Bounded h xs => Bounded (xs :& h) Source #  
WrapForall Eq h xs => Eq (xs :/ h) Source #  
WrapForall Eq h xs => Eq (xs :& h) Source #  
(Eq (xs :/ h), WrapForall Ord h xs) => Ord (xs :/ h) Source #  
(Eq (xs :& h), WrapForall Ord h xs) => Ord (xs :& h) Source #  
WrapForall Show h xs => Show (xs :/ h) Source #  
WrapForall Show h xs => Show (xs :& h) Source #  
WrapForall Semigroup h xs => Semigroup (xs :& h) Source #  
(WrapForall Semigroup h xs, WrapForall Monoid h xs) => Monoid (xs :& h) Source #  
WrapForall Lift h xs => Lift (xs :/ h) Source #  
WrapForall Lift h xs => Lift (xs :& h) Source #  
WrapForall NFData h xs => NFData (xs :/ h) Source #  
WrapForall NFData h xs => NFData (xs :& h) Source #  
WrapForall Hashable h xs => Hashable (xs :/ h) Source #  
WrapForall Hashable h xs => Hashable (xs :& h) Source #  
WrapForall Pretty h xs => Pretty (xs :/ h) Source #  
pretty :: (xs :/ h) > Doc ann prettyList :: [xs :/ h] > Doc ann  
WrapForall Pretty h xs => Pretty (xs :& h) Source #  
pretty :: (xs :& h) > Doc ann prettyList :: [xs :& h] > Doc ann  
WrapForall Arbitrary h xs => Arbitrary (xs :/ h) Source #  
WrapForall Arbitrary h xs => Arbitrary (xs :& h) Source #  
Forall (KeyTargetAre KnownSymbol (Instance1 FromJSON h)) xs => FromJSON (xs :& Nullable (Field h :: Assoc Symbol v > Type)) Source #  
Forall (KeyTargetAre KnownSymbol (Instance1 FromJSON h)) xs => FromJSON (xs :& (Field h :: Assoc Symbol v > Type)) Source # 

Forall (KeyTargetAre KnownSymbol (Instance1 ToJSON h)) xs => ToJSON (xs :& Nullable (Field h :: Assoc Symbol v > Type)) Source #  
Forall (KeyTargetAre KnownSymbol (Instance1 ToJSON h)) xs => ToJSON (xs :& (Field h :: Assoc Symbol v > Type)) Source #  
toJSON :: (xs :& Field h) > Value toEncoding :: (xs :& Field h) > Encoding toJSONList :: [xs :& Field h] > Value toEncodingList :: [xs :& Field h] > Encoding  
Forall (KeyTargetAre KnownSymbol (Instance1 FromField h)) xs => FromNamedRecord (xs :& (Field h :: Assoc Symbol v > Type)) Source #  
parseNamedRecord :: NamedRecord > Parser (xs :& Field h)  
WrapForall FromField h xs => FromRecord (xs :& h) Source #  
parseRecord :: Record > Parser (xs :& h)  
Forall (KeyTargetAre KnownSymbol (Instance1 ToField h)) xs => ToNamedRecord (xs :& (Field h :: Assoc Symbol v > Type)) Source #  
toNamedRecord :: (xs :& Field h) > NamedRecord  
WrapForall ToField h xs => ToRecord (xs :& h) Source #  
WrapForall Unbox h (x ': xs) => Unbox ((x ': xs) :& h) Source #  