Seeking Stability by being Lazy and Shallow: Lazy and shallow instantiation is user friendly
Designing a language feature often requires a choice between several, similarly expressive possibilities. Given that user studies are generally impractical, we propose using stability as a way of making such decisions. Stability is a measure of whether the meaning of a program alters under small, seemingly innocuous changes in the code.
Directly motivated by a need to pin down a feature in GHC/Haskell, we apply this notion of stability to analyse four approaches to the instantiation of polymorphic types, concluding that the most stable approach is lazy (instantiate a polytype only when absolutely necessary) and shallow (instantiate only top-level type variables, not variables that appear after explicit arguments).
Fri 27 AugDisplayed time zone: Seoul change
20:00 - 21:30
|Practical Normalization by Evaluation for EDSLs|
|Safe Mutation with Algebraic Effects|
|Seeking Stability by being Lazy and Shallow: Lazy and shallow instantiation is user friendly|