Modify a field in a record.
Modulerecord-hasfield-1.0.1Haskell2010
GHC.Records.Extra
Extensions over a future version of GHC.Records. Provides the function modifyField plus the orphan instances:
HasField '(x1,x2)for selecting first thex1field, then thex2field. Available for()and tuples up to arity 5.HasField "_1" (a,b) afor selecting the first compomnent of a pair, plus similarly for all fields up of all tuples up to arity 5.
Using these functions together you get:
modifyField @'("_1","_2") negate ((1,2),3,4,5) == ((1,-2),3,4,5)- 1 value
- Packagerecord-hasfield-1.0.1
- Exports1
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceExtra.hs
module GHC.Records.Compat
Orphan instances
19 instancesHasField '() a aHasField"_1"
(a, b) aHasField"_2"
(a, b) bHasField"_1"
(a, b, c) aHasField"_2"
(a, b, c) bHasField"_3"
(a, b, c) cHasField"_1"
(a, b, c, d) aHasField"_2"
(a, b, c, d) bHasField"_3"
(a, b, c, d) cHasField"_4"
(a, b, c, d) dHasField"_1"
(a, b, c, d, e) aHasField"_2"
(a, b, c, d, e) bHasField"_3"
(a, b, c, d, e) cHasField"_4"
(a, b, c, d, e) dHasField"_5"
(a, b, c, d, e) e(a1 ~ r2, HasField x1 r1 a1, HasField x2 r2 a2) => HasField '(x1, x2) r1 a2(a1 ~ r2, a2 ~ r3, HasField x1 r1 a1, HasField x2 r2 a2, HasField x3 r3 a3) => HasField '(x1, x2, x3) r1 a3(a1 ~ r2, a2 ~ r3, a3 ~ r4, HasField x1 r1 a1, HasField x2 r2 a2, HasField x3 r3 a3, HasField x4 r4 a4) => HasField '(x1, x2, x3, x4) r1 a4(a1 ~ r2, a2 ~ r3, a3 ~ r4, a4 ~ r5, HasField x1 r1 a1, HasField x2 r2 a2, HasField x3 r3 a3, HasField x4 r4 a4, HasField x5 r5 a5) => HasField '(x1, x2, x3, x4, x5) r1 a5