Module
Data.Homogeneous.Record
- Package
- purescript-homogeneous
- Repository
- paluh/purescript-homogeneous
#homogeneous Source
homogeneous :: forall a ra ls. HomogeneousRowLabels ra a ls => Record ra -> Homogeneous ls a
The "usual" constructor when
ra
Row
is known and you
want to derive sl
and a
from it.
#homogeneous' Source
homogeneous' :: forall a ra ls. ToHomogeneousRow ls a ra => Record ra -> Homogeneous ls a
When you already have Row
of labels and a
at hand and want to derive row
from them you can use this constructor instead.
#Homogeneous Source
newtype Homogeneous :: Row Type -> Type -> Type
newtype Homogeneous (row :: Row Type) a
Instances
(Eq a) => Eq (Homogeneous sl a)
(Ord a) => Ord (Homogeneous sl a)
Functor (Homogeneous r)
Apply (Homogeneous r)
(RowToList ls ll, Keys ll) => Applicative (Homogeneous ls)
Foldable (Homogeneous r)
FoldableWithIndex String (Homogeneous r)
(IsSymbol h, RowToList ls (Cons h a tail), Keys tail) => Foldable1 (Homogeneous ls)
Traversable (Homogeneous r)
(Semigroup a) => Semigroup (Homogeneous r a)
(RowToList ls ll, Keys ll, Monoid a) => Monoid (Homogeneous ls a)
(Show a) => Show (Homogeneous r a)
#fromHomogeneous Source
fromHomogeneous :: forall a ra ls. ToHomogeneousRow ls a ra => Homogeneous ls a -> Record ra
#modify Source
modify :: forall a ra ls. Homogeneous ra a => ToHomogeneousRow ls a ra => HomogeneousRowLabels ra a ls => Homogeneous ls a -> (Record ra -> Record ra) -> Homogeneous ls a
#get Source
get :: forall a ra ls. ToHomogeneousRow ls a ra => Homogeneous ls a -> (Record ra -> a) -> a