Skip to main content

Interactive Haskell Type Inference Exploration

Primary supervisor

Tim Dwyer


Advanced strongly typed languages like Haskell and emerging type systems like refinement types (as implemented in Liquid Haskell) offer strong guarantees about the correctness of programs.  However, when type errors occur it can be difficult for programmers to understand their cause.  Such errors are particularly confusing for people learning the language.  The situation is not helped by the cryptic error messages often produced by compilers.

However, tools exist (such as those that take advantage of constraint solvers to resolve types) that can offer a much finer grained level of feedback about the source of type errors.  This project will explore interactive visual tools (e.g. plugins for modern editors and integrated development environments) which clearly communicate this information to the programmer to quickly resolve type errors and support there understanding and propagation of types throughout their program.

Required knowledge

Haskell programming

User interface development and some flair for design

Knowledge of visualisation

Project funding

Project based scholarship

Learn more about minimum entry requirements.