Module
Classless
- Package
- purescript-classless
- Repository
- thought2/purescript-classless
#InitRecordField Source
data InitRecordField a
Instances
(IsSymbol sym, Lacks sym r, Cons sym a r rr, Init fn a) => FoldingWithIndex (InitRecordField fn) (Proxy sym) (Record r) (Proxy a) (Record rr)
#NoArgs Source
data NoArgs
Constructors
Instances
InitProduct fn NoArgs
MapProduct mp NoArgs NoArgs
(Applicative f) => SequenceProduct NoArgs NoArguments f
#ProductSpec Source
data ProductSpec a b
Constructors
ProductSpec a b
Instances
(Init fn a, InitProduct fn b) => InitProduct fn (ProductSpec a b)
(Mapping mp a a', MapProduct mp b b') => MapProduct mp (ProductSpec a b) (ProductSpec a' b')
(Applicative f, SequenceProduct a a' f, SequenceProduct b b' f) => SequenceProduct (ProductSpec a b) (Product a' b') f
#InitProduct Source
class InitProduct f a where
Members
initProduct :: f -> a
Instances
(Init fn a, InitProduct fn b) => InitProduct fn (ProductSpec a b)
InitProduct fn NoArgs
(Init fn a) => InitProduct fn a
#InitRecord Source
class InitRecord :: Type -> Row Type -> Constraint
class InitRecord f r where
Members
initRecord :: f -> Record r
Instances
(RowToList r rl, HFoldlWithIndex (InitRecordField fn) (Record ()) (Proxy rl) (Record r)) => InitRecord fn r
#InitSum Source
class InitSum :: Type -> Row Type -> Constraint
class InitSum f r where
Members
Instances
(InitRecord (InitSumField f) r) => InitSum f r
#MapProduct Source
class MapProduct mp a b where
Members
mapProduct :: mp -> a -> b
Instances
(Mapping mp a a', MapProduct mp b b') => MapProduct mp (ProductSpec a b) (ProductSpec a' b')
MapProduct mp NoArgs NoArgs
(Mapping mp a a') => MapProduct mp a a'
#MapSumProp Source
class MapSumProp :: Symbol -> Row Type -> Row Type -> Constraint
class MapSumProp (k :: Symbol) (ri :: Row Type) (ro :: Row Type) | k ri -> ro where
Members
mapSumProp :: Proxy k -> Record ri -> Record ro
Instances
(IsSymbol k, MapSum (MapProp k) ri ro) => MapSumProp k ri ro
#SequenceProduct Source
class SequenceProduct :: Type -> Type -> (Type -> Type) -> Constraint
class SequenceProduct specI specO (f :: Type -> Type) | specO f -> specI where
Members
sequenceProduct :: specI -> f specO
Instances
(Applicative f) => SequenceProduct NoArgs NoArguments f
(Applicative f) => SequenceProduct (f a) (Argument a) f
(Applicative f, SequenceProduct a a' f, SequenceProduct b b' f) => SequenceProduct (ProductSpec a b) (Product a' b') f
#SequenceRecord Source
class SequenceRecord :: Row Type -> Row Type -> (Type -> Type) -> Constraint
class SequenceRecord row row' m | row' -> row m where
Members
sequenceRecord :: Record row -> m (Record row')
Instances
(RowToList row' rl', SequenceRecordRL rl' row () row' m) => SequenceRecord row row' m
#SequenceRecordRL Source
class SequenceRecordRL :: RowList Type -> Row Type -> Row Type -> Row Type -> (Type -> Type) -> Constraint
class (Functor m) <= SequenceRecordRL (rl :: RowList Type) row from to m | rl row -> from to m where
Members
Instances
(IsSymbol name, Cons name (m ty) () row, Functor m, Lacks name (), Cons name ty () to) => SequenceRecordRL (Cons name ty Nil) row () to m
(IsSymbol name, Cons name (m ty) row' row, Apply m, SequenceRecordRL tail row' from from' m, Lacks name from', Lacks name row', Cons name ty from' to) => SequenceRecordRL (Cons name ty tail) row from to m
(Applicative m) => SequenceRecordRL Nil row () () m
- Modules
- Classless