Polyvariant Strictness Analysis in UHC

Publication date

DOI

Document Type

Master Thesis

Collections

Open Access logo

License

CC-BY-NC-ND

Abstract

Strictness analysis detects when it is safe to evaluate expressions before they actually need to be evaluated in a lazy language. We present the development of a polyvariant strictness analysis for Haskell. Previous developments typically used an ad hoc lambda-calculus based language that do not always reflect Haskell's complexity entirely, often lacking support for higher order functions, user defined datatypes, and recursion. Others that did have more extensive language support were mostly monovariant. Our system aims to cover both aspects: a polyvariant system with extensive support for higher order functions and user provided strictness annotations. This is then implemented in the Utrecht Haskell Compiler (UHC) to validate the system and observe its real world effects.

Keywords

UHC, strictness, analysis, static, Haskell, polyvariant

Citation