Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- newtype AsRecord rec = AsRecord {
- unAsRecord :: rec
Documentation
This newtype
is intended for use with DerivingVia
.
For an example use, let's consider this User
datatype:
data Foo = Foo { ints :: [Int] , char :: First Char } mkRecord ''Foo
Let's say we want to define an instance of Semigroup
for this type, so
that we can combine two of them. Ordinarily, we'd need to write
a boilerplate-y instance:
instance Semigroup Foo where f0 <> f1 = Foo { ints = f0.ints <> f1.ints , char = f0.char <> f1.char }
With DerivingVia
, we can use AsRecord
to provide it easily:
deriving via AsRecord Foo instance Semigroup Foo
Since: 0.0.4.0
AsRecord | |
|