photo Andres Löh
E-mail
Mastodon

I am currently a partner and Haskell Consultant at Well-Typed LLP.

From August 2007 to October 2010, I was a lecturer at Utrecht University in the Netherlands. From August 2005 to July 2007, I was a researcher at the University of Bonn in Germany, in the GFP project. From June to July 2005, I worked at the University of Freiburg in Germany. In February and March 2005, I was a visiting researcher at the Institute of Cybernetics in Tallinn, Estonia. From 2000 to 2005, I was at Utrecht University, where I finished my PhD in the field of Computer Science in September 2004. From 1995 to 2000, I studied Mathematics and Computer Science in Konstanz, Germany.

I am a Board member and Secretary of the Haskell Foundation since 2023.

I am a co-host of the Haskell Interlude podcast.

I am a co-host of the Haskell Unfolder YouTube series.

I was a co-organiser of MuniHac 2016–2022.

I was the PC chair of the Haskell eXchange 2013–2018.

I was the organiser of the Utrecht Summer School on Applied Functional Programming 2009 and 2010.

I am the "kosmi" in "Dunkosmiloolump".

I am a member of IFIP WG 2.1.

Research
I am interested in functional programming, programming language theory, type systems, dependently typed programming languages, and applications of functional programming.
I used to be a member of the Generic Programming project at Utrecht University.
I used to be a contributor to NixOS and Gentoo Linux.
Thesis
Exploring Generic Haskell
Teaching
If you are interested in hiring me for teaching courses related to Haskell or related topics, please contact Well-Typed LLP. I am the developer of most of the courses we are teaching at Well-Typed, both introductory and advanced Haskell courses, and courses on specialised topics such as compiler / DSL design, datatype-generic or type-level programming. In my time at Utrecht University, I've regularly been teaching the following courses: Introduction to Functional Programming, Languages and Compilers; Advanced Functional Programming, Type Systems and Dependently Typed Programming.
Past PhD Students
José Pedro Magalhães (co-supervised with Johan Jeuring and Doaitse Swierstra)
Past Master Students
Steven Keuchel (co-supervised with Johan Jeuring), Remi Turk (co-supervised with Piet Rodenburg), Sebastiaan Visser, Chris Eidhof (co-supervised with Doaitse Swierstra), Ingmar van der Steen, Vali Georgescul (co-supervised with Alexey Rodriguez), Gideon Smeding, Kasper Brink (co-supervised with Stefan Holdermans), Eelco Lempsink (co-supervised with Sean Leather), Robert Stremler.
PC memberships
Workshop on Functional Software Architecture – FP in the Large 2023
International Conference on Functional Programming (ICFP) 2022
Practical Aspects of Declarative Languages (PADL) 2022
Haskell Implementors Workshop (HIW) 2021
Haskell Symposium 2018
Trends in Functional Programming (TFP) 2018
Principles and Practice of Declarative Programming (PPDP) 2017
Functional and Logic Programming (FLOPS) 2016
Arbeitstagung Programmiersprachen (ATPS) 2014
Programming Languages meets Program Verification (PLPV) 2014
Commercial Users of Functional Programming (CUFP) 2013
Haskell-Treffen an der Universität Leipzig (HaL8) 2013
Workshop on Generic Programming (WGP) 2012 (chair)
Implementation and Application of Functional Languages (IFL) 2011
Haskell Implementors Workshop (HIW) 2011
Generative Programming and Component Engineering (GPCE) 2010
International Conference on Functional Programming (ICFP) 2010
Workshop on Partial Evaluation and Program Manipulation (PEPM) 2010
Workshop on Generic Programming (WGP) 2009
Mathematically Structured Functional Programming (MSFP) 2008
International Conference on Functional Programming (ICFP) 2006
Mathematically Structured Functional Programming (MSFP) 2006
Haskell Workshop 2006 (chair)
Haskell Workshop 2005
Publications (see also DBLP)
2022
Ningning Xie, Matthew Pickering, Andres Löh, Nicolas Wu, Jeremy Yallop, Meng Wang Staging with Class: A Specification for Typed Template Haskell POPL 2022.
2020
Matthew Pickering, Andres Löh, Nicolas Wu Staged Sums of Products Haskell 2020.
Matthew Pickering, Andres Löh, Nicolas Wu A Specification for Typed Template Haskell Rejected from ICFP 2020.
2018
Baldur Blöndal, Andres Löh, Ryan Scott Deriving Via, or, How to Turn Hand-Written Instances into An Anti-Pattern Haskell 2018.
2015
Alp Mestanogullari, Sönke Hahn, Julian K. Arni, Andres Löh Type-level Web APIs with Servant – An exercise in domain-specific generic programming WGP 2015.
José Pedro Magalhães, Andres Löh Hierarchy in Generic Programming Libraries MPC 2015.
2014
Wouter Swierstra, Andres Löh The Semantics of Version Control Onward 2014.
Edsko de Vries, Andres Löh True Sums of Products WGP 2014.
Helmut Grohne, Andres Löh, Janis Voigtländer Formalizing Semantic Bidirectionalization with Dependent Types BX 2014.
Sean Leather, Johan Jeuring, Andres Löh and Bram Schuur Type-Changing Rewriting and Semantics-Preserving Transformation PEPM 2014.
José Pedro Magalhães, Andres Löh Generic Generic Programming PADL 2014.
2013
Bruno C.d.S. Oliveira, Andres Löh Abstract Syntax Graphs for Domain Specific Languages PEPM 2013.
2012
Duncan Coutts, Andres Löh Deterministic Parallel Programming with Haskell CiSE.
José Pedro Magalhães, Andres Löh A formal comparison of approaches to datatype-generic programming MSFP 2012.
2011
Andres Löh, José Pedro Magalhães Generic Programming with indexed functors WGP 2011.
2010
José Pedro Magalhães, Atze Dijkstra, Johan Jeuring, Andres Löh A generic deriving mechanism for Haskell Haskell Symposium 2010.
Sebastiaan Visser, Andres Löh Generic Storage in Haskell WGP 2010.
Kasper Brink, Stefan Holdermans, Andres Löh Dependently Typed Grammars MPC 2010.
Thorsten Altenkirch, Nils Anders Danielsson, Andres Löh, Nicolas Oury ΠΣ: Dependent Types without the Sugar FLOPS 2010.
José Pedro Magalhães, Stefan Holdermans, Johan Jeuring, Andres Löh Optimizing generics is easy! PEPM 2010.
2009
Sean Leather, Andres Löh, Johan Jeuring Pull-Ups, Push-Downs, and Passing It Around (Exercises in Functional Incrementalization) IFL 2009.
Eelco Lempsink, Sean Leather, Andres Löh Type-safe diff for families of datatypes WGP 2009.
Alexey Rodriguez, Stefan Holdermans, Andres Löh, Johan Jeuring Generic programming with fixed points for mutually recursive datatypes ICFP 2009.
Andres Löh, Conor McBride, Wouter Swierstra A Tutorial Implementation of a Dependently Typed Lambda Calculus Fundamenta Informaticae. Revised version of "Simply Easy".
2008
Eelco Dolstra, Andres Löh NixOS: A Purely Functional Linux Distribution ICFP 2008.
Eelco Dolstra, Jurriaan Hage, Bastiaan Heeren, Stefan Holdermans, Johan Jeuring, Andres Löh, Clara Löh, Arie Middelkoop, Alexey Rodriguez, John van Schie Report on the Tenth ICFP Programming Contest ICFP 2008.
2007
Ralf Hinze, Andres Löh Generic programming in 3D Science of Computer Programming.
2006
Andres Löh, Wouter Swierstra, Daan Leijen A Principled Approach to Version Control Unpublished draft.
Andres Löh, Ralf Hinze Open data types and open functions PPDP 2006. (Won the most influential PPDP 06 paper award at PPDP 2016.)
Ralf Hinze, Andres Löh "Scrap Your Boilerplate" Revolutions MPC 2006.
Stefan Holdermans, Johan Jeuring, Andres Löh, Alexey Rodriguez Generic views on data types MPC 2006.
Bruno C.d.S. Oliveira, Ralf Hinze, Andres Löh Generics as a Library TFP 2006.
Ralf Hinze, Andres Löh Generic Programming, Now! SSDGP 2006.
Ralf Hinze, Andres Löh, Bruno C.d.S. Oliveira "Scrap Your Boilerplate" Reloaded FLOPS 2006.
Ralf Hinze, Johan Jeuring, Andres Löh Typed Contracts for Functional Programming FLOPS 2006.
2005
Alexey Rodriguez, Johan Jeuring, Andres Löh Type Inference for Generic Haskell Technical Report of Utrecht University.
Daan Leijen, Andres Löh Qualified Types for MLF Proceedings of the tenth ACM SIGPLAN ICFP, 2005, Tallinn, Estonia. Available online.
Stefan Holdermans, Johan Jeuring, Andres Löh Generic Views on Data Types Technical Report UU-CS-2005-012 of Utrecht University. Draft available online.
2004
Andres Löh Exploring Generic Haskell PhD thesis, Utrecht University Available online.
Ralf Hinze, Johan Jeuring, Andres Löh Type-indexed data types Science of Computer Programming.
2003
Andres Löh, Dave Clarke, Johan Jeuring Dependency-style Generic Haskell Proceedings of the eight ACM SIGPLAN ICFP, 2003, Uppsala, Sweden Also available as Technical Report UU-CS-2003-022 of Utrecht University. Available online.
2002
Dave Clarke, Andres Löh Generic Haskell, Specifically Jeremy Gibbons and Johan Jeuring (editors): Generic Programming, IFIP TC2/WG2.1 Working Conference on Generic Programming, July 11–12, 2002, Dagstuhl, Germany, pages 21–47. IFIP Conference Proceedings 243, Kluwer, ISBN 1-4020-7374-7
Ralf Hinze, Johan Jeuring, Andres Löh Type-indexed data types MPC 2002.
2001
Arthur Baars, Andres Löh, S. Doaitse Swierstra Parsing Permutation Phrases ACM SIGPLAN 2001 Haskell Workshop Available online.
2000
Ulrik Brandes Vanessa Kääb, Andres Löh, Thomas Willhalm Dynamic WWW Structures in 3D Journal of Graph Algorithms and Applications 4(3):183–191 Available online.
Downloads
lhs2TeX
lhs2TeX is a preprocessor to generate LaTeX code from literate Haskell sources. It is available for download via its own homepage.
Generic Haskell
Generic Haskell used to offer generic programming functionality in Haskell as a preprocessor. These days, there are several other approaches to generic programming that are better supported and easier to use. Old releases of the Generic Haskell compiler are still available.
exi
This is a reimplementation of the emerge layer of Gentoo Linux's package manager Portage in Haskell. Available via its own homepage.
BPL
An interpreter for the BPL programming language. Available via its own homepage (page in German).
hsbirthdays
This is a really small Haskell application that reminds you of upcoming birthdays. There is the source tarball and an inofficial Gentoo ebuild for your Portage overlay.
Talks
Structuring effectful programs, presented at BOB 2023, Berlin, March 2023
Hello HaskellX! An Introduction to (IO in) Haskell, presented at Haskell eXchange 2022, December 2022
An Introduction to Type Systems and Operational Semantics, presented at ZuriHac 2022, June 2022
True Lies and False Truths – On the importance of evidence in programming, presented at NWERC 2021, March 2021
Zero-overhead abstractions in Haskell using Staging, presented at Haskell Love Conference, July 2020
Datatype-Generic Programming / A Generic Journey, presented at ZuriHac, June 2020
Staged generics-sop, presented at the IFIP WG 2.1 meeting in Otterlo, January 2020
Deriving Via, presented at the Haskell eXchange, London, October 2018
Deriving Via, presented at the IFIP WG 2.1 meeting in Brandenburg, July 2018
Liquid Haskell Tutorial, presented at BOB 2018, Berlin, February 2018
(Simulating) effects in domain-specific languages, presented at IOHK Global Summit, Lisbon, January 2018
Write one program, get two (or three, or many), presented at BOB 2017, Berlin, February 2017
Evolving Datatypes, presented at Monadic Warsaw, January 2017
Type-Level Web APIs with Servant, presented at WGP 2015 in Vancouver, August 2015
Datatype-generic data migrations, presented at the IFIP WG 2.1 meeting in Lökeberg, August 2015
True Sums of Products (pdf), presented at WGP 2014 in Gothenburg, August 2014
An Introduction to (Deterministic) Parallel Programming in Haskell (pdf) (with code samples (zip)) presented at the Munich Lambda Meetup, February 2014
Monads for Free! (pdf), presented at the Haskell eXchange in London, October 2013
Distributed Programming with Cloud Haskell (pdf), presented at Big Tech Day 6 in Munich, June 2013
Datatype-Generic Programming in Haskell (pdf), presented at Skills Matter in London, April 2013
Haskell for (E)DSLs (pdf), presented at the Functional Programming eXchange in London, March 2012
Parallelizing Maximal Clique Enumeration in Haskell (pdf), presented at the IFIP WG 2.1 meeting in Rome, February 2012
Programming with Universes, Generically (pdf), presented at the University of Tübingen, January 2012
Datatype-generic Programming in Haskell (pdf), presented at the University of Tübingen, January 2012
The Parallel GHC Project (pdf), presented at the University of Bonn, May 2011
Datatype-generic Programming in Haskell (pdf), presented at the University of Bonn, May 2011
Expanding the Universe (pdf), presented at the IFIP WG 2.1 meeting in Reykjavik, May 2011
Haskell for EDSLs (pdf), presented at Capgemini, October 2010
Generic Storage in Haskell (pdf), presented at WGP 2010 in Baltimore, September 2010
Types, Universes and Everything (pdf), presented at the Computer Science Research Day at Utrecht University, May 2010
Dependently Typed Grammars (pdf), presented at MPC 2010, June 2010
lhs2TeX (pdf), presented at the Dutch HUG meeting, October 2009
Generic programming with fixed points for mutually recursive datatypes (pdf), presented at ICFP 2009 in Edinburgh, September 2009
Generic programming with the multirec library (pdf), presented at Chalmers University, May 2009
Generic diff (pdf), presented at the IFIP 2.1 meeting at Weltenburg Abbey, April 2009
Indexed Fixed Points (pdf), presented at the GP meeting at Utrecht University, November 2008
NixOS (in German, pdf), presented at the University of Kiel, July 2008
NixOS (pdf), presented at the IFIP WG 2.8 meeting in Park City, Utah, June 2008
Terminating combinator parsers in Agda (pdf), presented at the STC, June 2008
Types in Functional Programming Languages (pdf), presented at the UU General Math Colloqium, May 2008
Trinity (pdf), presented at the Dutch FP day, January 2008
Implementing Dependent Types in Haskell (pdf), presented at the IFIP WG 2.1 meeting in Kyoto, September 2007
Contracts in Trinity (pdf), presented at a Programming Languages Group meeting at TTI in Chicago, April 2007
Open data types and open functions (pdf), presented at PPDP 2006 in Venice, July 2006
Scrap Your Boilerplate Reloaded (pdf), presented at FLOPS 2006 in Fuji Susono, April 2006
Open data types and open functions (pdf), presented at Tokyo University, April 2006
Qualified Types for ML-F (pdf), presented at ICFP 2005 in Tallinn, September 2005
Extensible datatypes (pdf), presented at the Datatype-Generic Programming Workshop in Utrecht, August 2005
Data Structures II (pdf), guest lecture in the Advanced Functional Programming course, May 2005
Data Structures I (pdf), guest lecture in the Advanced Functional Programming course, May 2005
Attribute Grammars in Haskell with UUAG (pdf), presented at the Institute of Cybernetics in Tallinn, February 2005, revised version of the Konstanz talk
Structural polymorphism in Generic Haskell (pdf), presented at the Estonian Computer Science Theory Days in Koke, February 2005, revised version of the Freiburg talk
Typesetting Haskell and more with lhs2TeX (pdf), presented at the IFIP WG 2.1 meeting in Nottingham, September 2004, revised version of the STC talk
Dependencies – by case or by function? (pdf), presented at the IFIP WG 2.1 meeting in Nottingham, September 2004
Generalizing Generic functions (pdf), presented at a GH meeting, July 2004
Generic Haskell (pdf), presented at the University of Freiburg, November 2003
Typesetting Haskell and more with lhs2TeX (pdf), presented at an STC meeting, October 2003
Dependency-style Generic Haskell (pdf), presented at ICFP 2003 in Uppsala, August 2003
Generic Programming in Haskell (pdf), presented at an STC meeting, May 2003
Explicit Recursion in Generic Haskell (pdf), presented at the APPSEM-II workshop in Nottingham, March 2003
Dec@ding style files, presented at the University of Konstanz, November 2002; exercises, (in German, pdf)
Recovering explicit recursion in GH (pdf), presented at a GH meeting, October 2002
Generic Haskell, Specifically (pdf), presented at WCGP 2002 in Dagstuhl, July 2002
Generic Haskell 0.99 – Amber Release (pdf), presented at a GH meeting, November 2001
The UU_AG System – Programming with Functions, Aspects, Attributes, and Catamorphisms (pdf), presented at the University of Konstanz, June 2001
Generic Haskell – Bringing generic functions into the Haskell world (ps.gz), guest lecture in the Software Generation course, May 2001
A second prototype of a first prototype for Generic Haskell, presented at a GH meeting, November 2000
Miscellaneous
A poster (pdf) describing the Generic Haskell project.
The paper Aller guten Konjunktive sind drei (in German, pdf).
The polytable (version 0.8.2, .tar.gz) package for LaTeX.
Links
An introductory (and incomplete) course on the programming language Haskell.
Selectio Naturalis (in German) – a PBEM role-playing saga in the Ars Magica™ system
Günter Löh.
Generalized Cullen primes.

Valid XHTML 1.0! Valid CSS!

Andres Löh, 2023-08-22