large-records-0.1.0.0: Efficient compilation for large records, linear in the size of the record
Safe HaskellNone
LanguageHaskell2010

Data.Record.Generic.Rep.Internal

Description

Definition of Rep and functions that do not depend on ".Generic"

Defined as a separate module to avoid circular module dependencies.

Synopsis

Documentation

newtype Rep f a Source #

Representation of some record a

The f parameter describes which functor has been applied to all fields of the record; in other words Rep I is isomorphic to the record itself.

Constructors

Rep (Vector (f Any)) 

Instances

Instances details
Eq x => Eq (Rep (K x :: Type -> Type) a) Source # 
Instance details

Defined in Data.Record.Generic.Rep.Internal

Methods

(==) :: Rep (K x) a -> Rep (K x) a -> Bool #

(/=) :: Rep (K x) a -> Rep (K x) a -> Bool #

Show x => Show (Rep (K x :: Type -> Type) a) Source # 
Instance details

Defined in Data.Record.Generic.Rep.Internal

Methods

showsPrec :: Int -> Rep (K x) a -> ShowS #

show :: Rep (K x) a -> String #

showList :: [Rep (K x) a] -> ShowS #

Basic functions

map' :: (forall x. f x -> g x) -> Rep f a -> Rep g a Source #

Strict map

map' f x is strict in x: if x is undefined, map f x will also be undefined, even if f never needs any values from x.

sequenceA :: Applicative m => Rep (m :.: f) a -> m (Rep f a) Source #

Conversion

unsafeFromList :: [b] -> Rep (K b) a Source #

Convert list to Rep

Does not check that the length has the right number of elements.

collapse :: Rep (K a) b -> [a] Source #

Utility (for use in .Rep)