Olaf Chitil

Director of Undergraduate Admissions
+44 (0)1227 82 4320
 Olaf Chitil


I started studying computer science at the RWTH Aachen in 1989. I spent the academic year 1992/93 as an Erasmus exchange student at the University of Kent at Canterbury. I graduated in Aachen in June 1995, writing a dissertation about semantics of functional programs. From August 1995 to May 2000 I was employed as research & teaching assistant at the Lehrstuhl für Informatik II at the RWTH Aachen. There I obtained my PhD with a thesis about type-based deforestation of functional programs. Afterwards I came to the University of York as a research associate. Together with Colin Runciman and Malcolm Wallace I developed the Haskell tracer Hat. In 2002 I became a teaching fellow in York. In 2004 I became lecturer at the University of Kent.

As the Lecturer [...] put it: `He [the Archchancellor] called me in and asked me what I did, exactly. Have you ever heard of such a thing? What sort of question is that? This is a university!'
    Terry Pratchett, The Last Continent

Besides computer science I enjoy walking, reading, gardening, visiting historical sites and travelling in general.

Research interests

I belong to the following research groups:

All my research interests are connected to programming and programming languages. I am interested in semantics and theoretical foundations of programming languages, type theory, program transformation, compiler construction, message-passing-based concurrency, programming tools, and how to write programs. I aim to support programmers in developing software more effectively. My favourite programming languages are functional languages, especially Haskell.


Algorithms and Logic - COMP8840

 Foundations of Computing II - COMP3250


Do you want to do a PhD? Are you interested in functional programming languages or related topics? Then I would be pleased to hear from you.


General chair and local organiser together with Andy King of PPDP 2014 and LOPSTR 2014.

Programme committee chair of IFL 2007.

Programme committee member of Haskell Symposium 2018WFLP 2018WFLP 2017PEPM 2016LOPSTR 2015TFP 2015SLE 2013ICFP 2013Haskell Symposium 2013IFL 2011DSL 2011WFLP 2011TFP 2011IFL 2010PADL 2010IFL 2008TFP 2006WCFLP 2005WFLP 2004Haskell Workshop 2003WFLP 2003IFL 2002, IFL 2001.

I am a member of the PPDP steering commitee. I am also a member of the IFL advisory committee. A long time ago I co-maintained the Haskell Home Page.

I gave the invited talk at PROLE 2013.


  • Hat
    is a source-level tracer for Haskell. Often, programmers find it difficult to understand how the different parts of a program cause the computation to perform the observed input/output actions. Hat enables a user to see and interactively explore the usually invisible computation. Thus Hat assists with debugging, understanding complex programs (which we may not have written ourselves) and is useful for teaching.
  • A library for practical typed lazy contracts for Haskell
  • MonadicPromptLazyAssertions
    is a Haskell library for writing assertions that are both prompt and lazy. Properties are formulated in a monadic, parser-combinator-like language. See the APLAS 2007 paper for further information.
  • StrictCheck
    is a tool that tests whether a given Haskell function is least-strict. If it is not, StrictCheck suggests how the function could be less strict. See my IFL 2006 paper, slides and later technical report for further information.StrictCheck requires the Chasing Bottoms library and the Glasgow Haskell compiler.
  • COOSy
    is a library plus viewing tool for lightweight debugging of functional logic programs in Curry by observations. The programmer annotates expressions of interest in their program. With the viewing tool the programmer then views the values the annotated expressions have in a computation.
  • TypeIlluminator
    is a prototype tool implementing the ideas presented in the paper Compositional Explanation of Types and Algorithmic Debugging of Type Errors. It constructs the type explanation graph for programs written in a simple Haskell-like language and enables free navigation through the graph in various ways and algorithmic debugging.
  • FPretty
    is a Haskell library for pretty printing. The library has the same interface as that of Wadler. It is very efficient, in contrast to Wadler's library and the one by John Hughes and Simon Peyton Jones the pretty printer only takes time linear in the size of the printed document; it does not do any backtracking. This version is based on the latest papers by Doaitse Swierstra and me but provides additional combinators following PPrint by Daan Leijen.
Last updated