quantification-0.5.0: Rage against the quantification

Safe HaskellNone
LanguageHaskell2010

Topaz.Rec

Contents

Synopsis

Documentation

data Rec :: (k -> Type) -> [k] -> Type where Source #

Constructors

RecNil :: Rec f '[] 
RecCons :: f r -> Rec f rs -> Rec f (r ': rs) 
Instances
TestCoercion f => TestCoercion (Rec f :: [k] -> Type) Source # 
Instance details

Defined in Topaz.Types

Methods

testCoercion :: Rec f a -> Rec f b -> Maybe (Coercion a b) #

TestEquality f => TestEquality (Rec f :: [k] -> Type) Source # 
Instance details

Defined in Topaz.Types

Methods

testEquality :: Rec f a -> Rec f b -> Maybe (a :~: b) #

MonoidForeach f => MonoidForeach (Rec f :: [k] -> Type) Source # 
Instance details

Defined in Topaz.Types

Methods

emptyForeach :: Sing a -> Rec f a Source #

BinaryForeach f => BinaryForeach (Rec f :: [k] -> Type) Source # 
Instance details

Defined in Topaz.Types

Methods

putForeach :: Sing a -> Rec f a -> Put Source #

getForeach :: Sing a -> Get (Rec f a) Source #

StorableForeach f => StorableForeach (Rec f :: [k] -> Type) Source # 
Instance details

Defined in Topaz.Types

Methods

peekForeach :: Sing a -> Ptr (Rec f a) -> IO (Rec f a) Source #

pokeForeach :: Sing a -> Ptr (Rec f a) -> Rec f a -> IO () Source #

sizeOfForeach :: Proxy (Rec f) -> Sing a -> Int Source #

SemigroupForall f => SemigroupForall (Rec f :: [k] -> Type) Source # 
Instance details

Defined in Topaz.Types

Methods

appendForall :: Rec f a -> Rec f a -> Rec f a Source #

SemigroupForeach f => SemigroupForeach (Rec f :: [k] -> Type) Source # 
Instance details

Defined in Topaz.Types

Methods

appendForeach :: Sing a -> Rec f a -> Rec f a -> Rec f a Source #

FromJSONExists f => FromJSONExists (Rec f :: [k] -> Type) Source # 
Instance details

Defined in Topaz.Types

FromJSONForeach f => FromJSONForeach (Rec f :: [k] -> Type) Source # 
Instance details

Defined in Topaz.Types

Methods

parseJSONForeach :: Sing a -> Value -> Parser (Rec f a) Source #

ToJSONForall f => ToJSONForall (Rec f :: [k] -> Type) Source # 
Instance details

Defined in Topaz.Types

Methods

toJSONForall :: Rec f a -> Value Source #

HashableForall f => HashableForall (Rec f :: [k] -> Type) Source # 
Instance details

Defined in Topaz.Types

Methods

hashWithSaltForall :: Int -> Rec f a -> Int Source #

ShowForeach f => ShowForeach (Rec f :: [k] -> Type) Source # 
Instance details

Defined in Topaz.Types

Methods

showsPrecForeach :: Sing a -> Int -> Rec f a -> ShowS Source #

ShowForall f => ShowForall (Rec f :: [k] -> Type) Source # 
Instance details

Defined in Topaz.Types

Methods

showsPrecForall :: Int -> Rec f a -> ShowS Source #

OrdForeach f => OrdForeach (Rec f :: [k] -> Type) Source # 
Instance details

Defined in Topaz.Types

Methods

compareForeach :: Sing a -> Rec f a -> Rec f a -> Ordering Source #

EqForallPoly f => EqForallPoly (Rec f :: [k] -> Type) Source # 
Instance details

Defined in Topaz.Types

Methods

eqForallPoly :: Rec f a -> Rec f b -> WitnessedEquality a b Source #

OrdForall f => OrdForall (Rec f :: [k] -> Type) Source # 
Instance details

Defined in Topaz.Types

Methods

compareForall :: Rec f a -> Rec f a -> Ordering Source #

EqForeach f => EqForeach (Rec f :: [k] -> Type) Source # 
Instance details

Defined in Topaz.Types

Methods

eqForeach :: Sing a -> Rec f a -> Rec f a -> Bool Source #

EqForall f => EqForall (Rec f :: [k] -> Type) Source # 
Instance details

Defined in Topaz.Types

Methods

eqForall :: Rec f a -> Rec f a -> Bool Source #

EqForall f => Eq (Rec f as) Source # 
Instance details

Defined in Topaz.Types

Methods

(==) :: Rec f as -> Rec f as -> Bool #

(/=) :: Rec f as -> Rec f as -> Bool #

OrdForall f => Ord (Rec f as) Source # 
Instance details

Defined in Topaz.Types

Methods

compare :: Rec f as -> Rec f as -> Ordering #

(<) :: Rec f as -> Rec f as -> Bool #

(<=) :: Rec f as -> Rec f as -> Bool #

(>) :: Rec f as -> Rec f as -> Bool #

(>=) :: Rec f as -> Rec f as -> Bool #

max :: Rec f as -> Rec f as -> Rec f as #

min :: Rec f as -> Rec f as -> Rec f as #

ShowForall f => Show (Rec f as) Source # 
Instance details

Defined in Topaz.Types

Methods

showsPrec :: Int -> Rec f as -> ShowS #

show :: Rec f as -> String #

showList :: [Rec f as] -> ShowS #

SemigroupForall f => Semigroup (Rec f as) Source # 
Instance details

Defined in Topaz.Types

Methods

(<>) :: Rec f as -> Rec f as -> Rec f as #

sconcat :: NonEmpty (Rec f as) -> Rec f as #

stimes :: Integral b => b -> Rec f as -> Rec f as #

HashableForall f => Hashable (Rec f as) Source # 
Instance details

Defined in Topaz.Types

Methods

hashWithSalt :: Int -> Rec f as -> Int #

hash :: Rec f as -> Int #

ToJSONForall f => ToJSON (Rec f as) Source # 
Instance details

Defined in Topaz.Types

Methods

toJSON :: Rec f as -> Value #

toEncoding :: Rec f as -> Encoding #

toJSONList :: [Rec f as] -> Value #

toEncodingList :: [Rec f as] -> Encoding #

(FromJSONForeach f, Reify as) => FromJSON (Rec f as) Source # 
Instance details

Defined in Topaz.Types

Methods

parseJSON :: Value -> Parser (Rec f as) #

parseJSONList :: Value -> Parser [Rec f as] #

(StorableForeach f, Reify as) => Storable (Rec f as) Source # 
Instance details

Defined in Topaz.Types

Methods

sizeOf :: Rec f as -> Int #

alignment :: Rec f as -> Int #

peekElemOff :: Ptr (Rec f as) -> Int -> IO (Rec f as) #

pokeElemOff :: Ptr (Rec f as) -> Int -> Rec f as -> IO () #

peekByteOff :: Ptr b -> Int -> IO (Rec f as) #

pokeByteOff :: Ptr b -> Int -> Rec f as -> IO () #

peek :: Ptr (Rec f as) -> IO (Rec f as) #

poke :: Ptr (Rec f as) -> Rec f as -> IO () #

map :: (forall x. f x -> g x) -> Rec f as -> Rec g as Source #

append :: Rec f as -> Rec f bs -> Rec f (as ++ bs) Source #

traverse :: Applicative h => (forall x. f x -> h (g x)) -> Rec f rs -> h (Rec g rs) Source #

traverse_ :: Applicative h => (forall x. f x -> h b) -> Rec f rs -> h () Source #

zipWith :: (forall x. f x -> g x -> h x) -> Rec f rs -> Rec g rs -> Rec h rs Source #

foldMap :: forall f m rs. Monoid m => (forall x. f x -> m) -> Rec f rs -> m Source #

Map each element of a record to a monoid and combine the results.

foldMap1 :: forall f m r rs. Semigroup m => (forall x. f x -> m) -> Rec f (r ': rs) -> m Source #

Access

get :: Elem rs r -> Rec f rs -> f r Source #

put :: Elem rs r -> f r -> Rec f rs -> Rec f rs Source #

gets :: Rec (Elem rs) ss -> Rec f rs -> Rec f ss Source #

puts :: Rec (Elem rs) ss -> Rec f rs -> Rec f ss -> Rec f rs Source #

Conversion