Skip to content


PureScript Notes

Some casual notes about PureScript's implementation for personal studying record.


  1. Best practice in engineering with Haskell
    • Modules
    • Naming Convention
    • Generic Programming
    • Code reuse
    • et cetera
  2. Relationship with theory
    • Rewriting
      • Equivalence between PS and JS
      • Intermediate representation
    • Type system
      • How is inference et cetera implemented?
      • How is arbitrary rank implemented?
    • Optimization
      • Tail-call elimination
      • Efficient pattern-matching
      • Compile-time evaluation
      • Inlining
      • Backend specifics (JavaScript)
    • Correctness
      • Exhaustivity

    • Is it a good design?
    • Is it a bad design?
    • Is it a correct implementation?
    • What features should be added in?

Table of Contents

To structure the "Relationship with theory", I will organize the things as follows