This post aggregates papers which are useful for understanding the PureScript type system.
Note: while these papers inspired or relate to PureScript type system features, they do not necessarily correspond directly to its implementation.
This is a wiki post: if you notice features or papers missing from this list, feel free to add them!
Implementing and Understanding Type Classes
Typing Haskell in Haskell
How to make ad-hoc polymorphism less ad hoc
Type Classes With Functional Dependencies
Elaboration on Functional Dependencies: Functional Dependencies Are Dead, Long Live Functional Dependencies
|Type inference & Type-checking||
HMF: Simple Type Inference for First-Class Polymorphism
Complete and Easy Bidirectional Typechecking for Higher-Rank Polymorphism
|Generics||A Generic Deriving Mechanism for Haskell|
|Record / row types||
Extensible records with scoped labels
First-class labels for extensible rows
Row Polymorphism Isn’t Subtyping
|Instance chains||Instance Chains: Type Class Programming Without Overlapping Instances|
|(Others)||Let Should Not Be Generalised|
|Deriving Via||Deriving Via|