# composite-cassava
Provides `FromNamedRecord` and `ToNamedRecord` instances for composite records.
In order to use this, use DerivingVia with one of the newtypes, depending on your
use case. The recommended way is like so:
```{.haskell}
withLensesAndProxies
[d|
type A = "A" :-> Text
type B = "B" :-> Double
type C = "C" :-> Text
type D = "D" :-> Int
|]
type RecMaybe = Rec Maybe '[A, B, C, D]
deriving newtype instance FromField A
deriving newtype instance FromField B
deriving newtype instance FromField C
deriving newtype instance FromField D
deriving newtype instance ToField A
deriving newtype instance ToField B
deriving newtype instance ToField C
deriving newtype instance ToField D
deriving via (TF Maybe '[A, B, C, D]) instance FromNamedRecord RecMaybe
deriving via (TF Maybe '[A, B, C, D]) instance ToNamedRecord RecMaybe
```