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 :: 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`