Sam Lindley

Sam.Lindley@ed.ac.uk
I am a Reader in Programming Language Design and Implementation in the Laboratory for Foundations of Computer Science at the School of Informatics at The University of Edinburgh.
I hold a UKRI Future Leaders Fellowship in Effect Handler Oriented Programming.
Papers
See also DBLP and Google Scholar.-
Rows and capabilities as modal effects with names
Draft, February 2025.
-
First-order Laziness
To appear at ICFP 2025.
-
Modal effect types
To appear at OOPSLA 2025.
-
Scoped effects, scoped operations, and parameterized algebraic theories
In ACM Transactions on Programming Languages and Systems, May 2025.
-
Effect handlers for C via coroutines
In the proceedings of OOPSLA 2024.
-
Oxidizing OCaml with modal memory management
In the proceedings of ICFP 2024.
-
Asymptotic speedup via effect handlers
In the Journal of Functional Programming (ICFP 2020 special issue) 34:e5, April 2024.
-
Bringing the WebAssembly standard up to speed with SpecTec
In the proceedings of PLDI 2024.
-
The functional essence of imperative binary search trees
In the proceedings of PLDI 2024.
-
Behavioural types for heterogeneous systems
In the proceedings of PLACES 2024.
-
Scoped effects as parameterized algebraic theories
In the proceedings of ESOP 2024.
-
Soundly handling linearity
In the proceedings of POPL 2024.
-
Continuing WebAssembly with effect handlers
In the proceedings of OOPSLA 2023.
-
Structural subtyping as parametric polymorphism
In the proceedings of OOPSLA 2023.
-
Separating sessions smoothly
In LMCS, Volume 19, Issue 3, July 2023.
-
High-level effect handlers in C++
In the proceedings of OOPSLA 2022.
-
Constraint-based type inference for FreezeML
In the proceedings of ICFP 2022.
-
Encoding product types
Draft, May 2022.
-
A typed slicing compilation of the polymorphic RPC calculus
In the proceedings of PPDP 2021.
-
Separating sessions smoothly
In the proceedings of CONCUR 2021.
-
Practical normalization by evaluation for EDSLs
In the proceedings of Haskell 2021.
-
Handler calculus
Extended abstract. Presented at HOPE 2021.
-
The virtues of semi-explicit polymorphism
Extended abstract. Presented at ML 2020.
-
Effects for efficiency: asymptotic speedup with first-class control
In the proceedings of ICFP 2020.
- A polymorphic RPC calculus
Science of Computer Programming 197:102499, October 2020.- Doo bee doo bee doo
In the Journal of Functional Programming (special issue on algebraic effects and handlers) 30:e9, March 2020.- Effect handlers via generalised continuations
In the Journal of Functional Programming (special issue on algebraic effects and handlers) 30:e5, March 2020.- FreezeML: complete and easy type inference for first-class polymorphism
In the proceedings of PLDI 2020.- On the expressive power of user-defined effects: effect handlers, monadic reflection, delimited control
In the Journal of Functional Programming (ICFP 2017 special issue) 29:e15, October 2019.- Exceptional asynchronous session types: session types without tiers
In the proceedings of POPL 2019.- Data Parallel Idealised Algol
Robert Atkey, Michel Steuwer, Sam Lindley, and Christophe DubachDraft, July 2018.- Shallow effect handlers
In the proceedings of APLAS 2018.- Continuation passing style for effect handlers
In the proceedings of FSCD 2017.- On the expressive power of user-defined effects: effect handlers, monadic reflection, delimited control
In the proceedings of ICFP 2017.- Lightweight functional session types
In Behavioural types: from theory to tools. June 2017.- Mixing metaphors: actors as channels and channels as actors
In the proceedings of ECOOP 2017.- Do be do be do
In the proceedings of POPL 2017.- Embedding session types in Haskell
In the proceedings of Haskell 2016.- Liberating effects with rows and handlers
In the proceedings of TyDe 2016.- Coherence generalises duality: a logical explanation of multiparty session types
In the proceedings of CONCUR 2016.- Talking bananas: structural recursion for session types
In the proceedings of ICFP 2016.- Conflation confers concurrency
In the proceedings of WF 2016.- Everything old is new again: Quoted Domain Specific Languages
In the proceedings of PEPM 2016.- Generating performance portable code using rewrite rules: from high-level functional expressions to high-performance OpenCL code
In the proceedings of ICFP 2015.- A semantics for propositions as sessions
In the proceedings of ESOP 2015.- Algebraic effects and effect handlers for idioms and arrows
In the proceedings of WGP 2014.- Query shredding: efficient relational evaluation of queries over nested multisets
In the proceedings of SIGMOD 2014.- Sessions as propositions
In the proceedings of PLACES 2014.- Effective quotation
In the proceedings of PEPM 2014.- Hasochism: the pleasure and pain of dependently typed Haskell programming
In the proceedings of Haskell 2013.- Handlers in action
In the proceedings of ICFP 2013.- A practical theory of language-integrated query
In the proceedings of ICFP 2013.- Lenses for web data
In the proceedings of BX 2013.- Dr. Formlens, Or: How I Learned to Stop Worrying and Love Monoidal Functors
Draft, June 2012.- Embedding F
In the proceedings of WGP 2012.- Row-based effect types for database integration
In the proceedings of TLDI 2012.- The Database Wiki project: a general-purpose platform for data curation and collaboration
In SIGMOD Record 40(3), pages 15-20, September 2011.- Using Links to prototype a database wiki
In the proceedings of DBPL 2011.- DBWiki: a structured wiki for curated data and collaborative data management
In the proceedings of SIGMOD 2011.- The arrow calculus
In the Journal of Functional Programming 20:1, pages 51-69, January 2010.- Accumulating bindings
In the proceedings of 2009 Workshop on Normalization by Evaluation.- Unembedding domain-specific languages
In the proceedings of Haskell Symposium 2009. ACM Digital Library.- The essence of form abstraction
In the proceedings of APLAS 2008. LNCS 5356.- Many holes in Hindley-Milner
In the proceedings of ML 2008. ACM Digital Library.- Idioms are oblivious, arrows are meticulous, monads are promiscuous.
In the proceedings of MSFP 2008. ENTCS 229(5).- The arrow calculus
Technical report EDI-INF-RR-1258.- An idiom's guide to formlets
Technical report EDI-INF-RR-1263.- Links: web programming without tiers
In the proceedings of FMCO 2006. LNCS 4709.- Extensional rewriting with sums
In the proceedings of TLCA 2007. LNCS 4583.- Implementing deterministic declarative concurrency using sieves
In the proceedings of DAMP 2007. ACM Digital Library.- Normalisation by evaluation in the compilation of typed functional programming languages
PhD Thesis, The University of Edinburgh, 2005.- Reducibility and TT-lifting for computation types
In the proceedings of TLCA 2005. LNCS 3461.- Shrinking reductions in SML.NET
In the proceedings of IFL 2004. LNCS 3474.Books
-
Proceedings of the 8th Workshop on Mathematically Structured Functional Programming
CoRR, volume abs/2004.14735, 2020.
-
Post-proceedings of the 2017 ML Family and OCaml Users and Developers Workshops
CoRR, volume abs/1905.05909, 2019.
-
Proceedings of the 7th Workshop on Mathematically Structured Functional Programming
CoRR, volume abs/1807.03732, 2018.
-
Proceedings of the 2nd ACM SIGPLAN International Workshop on Type-Driven Development
ACM, 2017.
-
A list of successes that can change the world
Essays dedicated to Philip Wadler on the occasion of his 60th birthday.LNCS 9600, Springer 2016.
Programme committees
OOPSLA 2026, WebAssembly Workshop @ ICFP/SPLASH 2025, PLDI 2025 (Area Chair), PEPM 2025, ICFP 2023 (PC Chair), ML 2022, ICFP 2022, ESOP 2022, APLAS 2021, PEPM 2021 (co-chair), APLAS 2020, MSFP 2020 (co-chair), POPL 2020, TFP 2019, DBPL 2019, ProWeb 2019, Haskell Symposium 2018, ICFP 2018, MSFP 2018 (co-chair), WWW-WPDAI 2018, ProWeb 2018, OCaml 2017, ML Family Workshop 2017 (chair), TyDe 2017 (co-chair), PLACES 2017, POPL-ERC 2017, ICFP-ERC 2016, DPRTCPS 2015, DBPL 2015, HOPE 2015, ML 2015, PADL 2015, TFP 2015, TYPES 2015, PEPM 2015, PADL 2014, Haskell Symposium 2011, ICFP 2011, DBPL 2011 - A polymorphic RPC calculus