Deriving as a library (Lightning Talk)
summary
Proposes removing the deriving keyword from GHC and implementing deriving as a library using first-class instances and a simple dict primitive that exposes class dictionaries as values. Provides a proof-of-concept library at gitlab.com/lysxia/ad-lib implemented with Template Haskell, demonstrating deriving-via, generic deriving, and a generic ISO-functor derivation that covers many classes. Prototype works for most Eq-like and Functor-like cases but fails for Show/Read and does not handle type families; type-family support is explicitly excluded for now.
AI-written summary · about
chapters (10)
- 0:00Deriving as a library
- 0:22GHC’s deriving problems
- 1:47Move deriving out of GHC
- 2:30First-class type class instances
- 4:22Deriving values via FP
- 5:48Generic deriving without extensions
- 7:37Advanced deriving with isomorphisms
- 9:46Limitations and future
- 10:09Conclusion and overview
- 10:53Q&A on implementation
related talks
26mMaking life easier with Derive and other tools
29mType Inference Techniques: Implementation and Formalization, Better Together
24mCode Generation via Meta-programming in Dependently Typed Proof Assistants
54mRoll Your Own Shapeless
42mSuggesting Valid Substitutions For Typed Holes
42mSlow-Auto, Inconvenient-Semi: escaping false dichotomy with sanely-automatic derivation
45mDissecting the stdlib
56mHow To "Dot" Into Anything, Anywhere, Anytime (Facilitating Data-First Programming)
