Haskell
  • Names in Haskell Compilers

    by Vanessa McHale | Haskell

    One common oversight in Haskell compilers is failing to intern identifiers using Ints and failing to prefer IntMaps and IntSets. The PureScript compiler, for instance, uses Maps as of writing.

  • The Interesting Part of Monadic Effects

    by Vanessa McHale | Haskell

    Monads for effects are familiar to the Haskell programmer; they were introduced by Wadler's "Monads for functional programming" and are the accepted way to work with side effects in a lazy language.

  • Tricks for Compilers in Haskell

    by Vanessa McHale | Haskell

    When writing a compiler, one typically annotates the syntax tree in various phases. What the nodes are annotated with will vary over the course of the program; one might add type information during a type synthesis phase.

  • Compiler Performance in Haskell

    by Vanessa McHale | Haskell

    I stumbled across a comment by András Kovács on compiler performance, which brought up some of the difficulties writing adequate compilers in lower-level languages such as C++ or Rust.

  • Strict Data Structures Do Not Improve Performance

    by Vanessa McHale | Haskell

    I have seen "strict data structures, lazy functions" bandied about among Haskellers. This is bad advice. Preferable is "know what you are doing."

    |