The Curious Engineer

All blogs / Haskell

Simon Peyton Jones

simon.peytonjones.org

Simon Peyton Jones’ personal website.

HaskellFunctional / PL theoryCompilers

Posts
97 from 1 Jan 1990 to 12 Aug 2026
Posting
now and then (2 in the last year)
Kind
personal blog
Feed
https://simon.peytonjones.org/feed.xml

2026 2

  1. Haskell: origins, evolution, and future
  2. The Verse Language: Types, Semantics, and Verification

2025 4

  1. Join points in practice
  2. Inlining in the Glasgow Haskell Compiler: empirical investigation and improvement
  3. Dual-numbers reverse AD for functional array languages
  4. Bits with soul

2023 2

  1. The Verse Calculus: a core calculus for functional logic programming
  2. Secrets of the GHC Typechecker in 100 Type Declarations

2021 5

  1. Provably Correct, Asymptotically Efficient, Higher-Order Reverse-Mode Automatic Differentiation
  2. Triemaps that match
  3. VICAUSE: Simultaneous Missing Value Imputation and Causal Discovery
  4. Hashing Modulo Alpha-Equivalence
  5. Results and Insights from Diagnostic Questions: The NeurIPS 2020 Education Challenge

2020 6

  1. Elastic Sheet-Defined Functions: Generalising Spreadsheet Functions to Variable-Size Input Arrays
  2. A quick look at impredicativity
  3. Kinds Are Calling Conventions
  4. Lower your guards: a compositional pattern-match coverage checker
  5. Diagnostic Questions: The NeurIPS 2020 Education Challenge
  6. Build systems a la carte: theory and practice

2019 5

  1. Higher-order type-level programming in Haskell
  2. Making a faster curry with extensional types
  3. Efficient differentiable programming in a functional array-processing language
  4. Type inference as constraint solving: how GHC’s type inference engine actually works
  5. Codata in action

2018 5

  1. Calculation View: multiple-representation editing in spreadsheets
  2. Build systems a la carte
  3. Type variables in patterns
  4. Guarded impredicative polymorphism
  5. Linear Haskell: practical linearity in a higher-order polymorphic language

2017 5

  1. Using Destination-Passing Style to Compile a Functional Language into Efficient Low-Level Code
  2. SHErrLoc: a static holistic error locator
  3. Compiling without continuations
  4. Levity polymorphism
  5. Trees that grow

2016 9

  1. Modular, higher-order cardinality analysis in theory and practice
  2. Desugaring Haskell’s do-notation Into Applicative Operations
  3. Non-recursive Make Considered Harmful
  4. Pattern Synonyms
  5. Sequent calculus as a compiler intermediate language
  6. Safe zero-cost coercions for Haskell
  7. Composable Scheduler Activations for Haskell
  8. Typed reflection in Haskell
  9. Backpack to work: towards practical mixin linking for Haskell

2015 3

  1. GADTs meet their match: pattern-matching warnings that account for GADTs, guards, and laziness
  2. Injective type families for Haskell
  3. Diagnosing type errors with class

2014 7

  1. Refinement Types for Haskell
  2. Safe, zero-cost coercions for Haskell
  3. Theory and practice of demand analysis in Haskell
  4. Backpack: retrofitting Haskell with interfaces
  5. Closed Type Families with Overlapping Equations
  6. Computing at School: Informatics Europe Best Practices in Education Award
  7. Modular, Higher-order Cardinality Analysis in Theory and Practice

2013 6

  1. Exploiting vector instructions with generalized stream fusion
  2. Evidence normalization in System FC
  3. Computing at school in the UK: from guerrilla to gorilla
  4. Supercompilation for call by need languages
  5. Bringing Computer Science Back Into Schools: Lessons from the UK
  6. HALO: Haskell to Logic Through Denotational Semantics

2012 7

  1. Equality proofs and deferred type errors
  2. Work Efficient Higher-Order Vectorisation
  3. Guiding parallel array fusion with index types
  4. Safe Haskell
  5. Vectorisation avoidance
  6. Giving Haskell a Promotion
  7. The Glasgow Haskell Compiler

2011 10

  1. Towards Haskell in the cloud
  2. OutsideIn(X): Modular type inference with local assumptions
  3. Termination Combinators Forever
  4. Multicore Garbage Collection with Local Heaps
  5. Haskell and transactional memory
  6. Practical aspects of evidence-based compilation in System FC
  7. A Monad for Deterministic Parallelism
  8. Generative type abstraction and type-level computation
  9. Improving supercompilation: tag-bags, rollback, speculation, normalisation, and generalisation
  10. Efficient Parallel Stencil Convolution in Haskell

2010 4

  1. Hoopl: A Modular, Reusable Library for Dataflow Analysis and Transformation
  2. Let Should Not Be Generalised
  3. Regular, shape-polymorphic, parallel arrays in Haskell
  4. Supercompilation by evaluation

2007 1

  1. A History of Haskell: Being Lazy with Class

2003 1

  1. Wearing the hair shirt: a retrospective on Haskell

2001 1

  1. Tackling the awkward squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell

2000 1

  1. Papers Published 2000-2009

1990 1

  1. Papers Published 1990-1999

Undated 12

  1. See more
  2. See more
  3. See more
  4. Papers Published 1980-1989
  5. Awards and Honours
  6. Bio & Pictures
  7. Haskell
  8. Podcasts and interviews
  9. Publications by Year
  10. Research skills: resources
  11. The implementation of functional programming languages
  12. A taste of Haskell. Video and slides from my tutorial on Haskell at the O’Reilly Open Source Convention in Portland, 2007