Type-Machine er et Haskell-bibliotek, der bruger Template Haskell til at generere records og simulere struktursubtyping.
Biblioteket tilbyder type-transformers som pick, omit, record, intersection og apply til at manipulere records på typesynsniveau.
Infixoperatørerne <:> og <::> gør det muligt at kæde type-transformers og anvende dem på eksisterende typer uden ekstra verbositet.
defineIs genererer typeklasser med getters, setters og konverteringsfunktioner for recordfelter, mens deriveIs afleder instanser til struktursubtyping mellem typer.
Native records genereret af Type-Machine giver hurtigere opbygning og adgang til felter sammenlignet med heterogene lister.
Begrænsninger omfatter behovet for DuplicateRecordFields, kun én konstruktor pr. record og kendskab til Template Haskell.
Fremtidige forbedringer foreslås som defineConstraint til at definere brugerdefinerede struktursubtyping-constraints.
Et Servant-eksempel viser, hvordan UserRecord kan omdannes til UserForm og UserResponse ved hjælp af type-transformers og Is-klasser.
Get notified when new stories are published for "Hacker News 🇩🇰 Dansk"