John Hughes

Co-Designer Of Haskell And QuickCheck

John Hughes has been a functional programming enthusiast for more than thirty years, at the Universities of Oxford, Glasgow, and since 1992 Chalmers University in Gothenburg, Sweden. He served on the Haskell design committee, co-chairing the committee for Haskell 98, and is the author of more than 100 papers, including "Why Functional Programming Matters", one of the classics of the area. With Koen Claessen, he created QuickCheck, the most popular testing tool among Haskell programmers, and in 2006 he founded Quviq to commercialise the technology using Erlang. In 2018 he became an ACM Fellow.

Upcoming Activities

John Hughes / Fred Hebert
Code BEAM V America

Property Based Testing with John Hughes and Fred Hebert

Q&A session with John Hughes hosted by Fred Hebert

Past Activities

John Hughes
Code Mesh V
Tutorial/ 04 Nov 2020
08.00 - 11.30

Haskell from Zero to Hero

Haskell is your gateway to functional programming. Learning it will make you a better programmer regardless of what language you use, and using it will guarantee you ship much less code. From one of the co-creators of Haskell, this tutorial will act as a soft introduction to the language, flattening out the learning curve and speeding up the process. 






3 hours 30 minutes



Software developers


  • Good programming skills in at least another programming language
  • Familiarity with imperative or OO paradigms


  • Reduce the barrier to entry to Haskell through the basics
  • Appreciate the abstractions of Functional Programming
  • Get a solid understanding of the type system and other language construcs



  • Functions, Lists and Lists Comprehensions
  • Types and Typeclasses
  • Pattern Matching and its uses
  • Recursion, Higher Order Functions and Lazy Evaluations
  • I/O & Modules


Haskell is not a hard language to learn. What is hard is unlearning the bad habits you have picked up. This tutorial aims at giving you a birds-eye view of the foundations, explaining the rationale behind the design decisions. In doing so, it will make it easier for you to use the concepts and ideas in your daily work, even if it is not with a functional language. 

John Hughes
Code Mesh LDN
08 Nov 2019
10.35 - 11.20

How to specify it! A guide to writing properties of pure functions

Property-based testing is an appealing approach to testing, but requires developers to identify suitable properties to test--and many find this difficult, and find the simple properties in tutorials difficult to generalize.

In this talk, John will present five different strategies for coming up with properties of pure functions, and he'll compare their effectiveness as tests; he'll also warn of the biggest pitfall to be avoided.

You'll leave this talk with new ideas for writing properties of your own functions. John will be using the Haskell version of QuickCheck for his examples, but the ideas are usable with any property-based testing tool.

John Hughes
Code Mesh V
06 Nov 2020
18.10 - 18.40

Ask Me anything about Haskell

John Hughes / Melinda Tóth / Natalia Chechina
Code BEAM Lite Budapest
20 Sep 2019
17.10 - 17.50

Research + Industry = Inspiration

Erlang has been inspiring research and industry from its first days – and is itself a result of successful application of research and industrial practices. In this talk we will explore what makes Erlang an exciting topic for collaboration between industry and academia, Erlang’s attractiveness to researchers and talk about transformation of research ideas into companies. We’ll also discuss ways of getting involved in research.