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.
Encoding product types
Draft, May 2022.

Highlevel typesafe effect handlers in C++
Draft, April 2022.

Constraintbased type inference for FreezeML
Draft, March 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 semiexplicit polymorphism
Extended abstract. Presented at ML 2020.

Effects for efficiency: asymptotic speedup with firstclass 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 firstclass polymorphism
In the proceedings of PLDI 2020.

On the expressive power of userdefined 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 userdefined 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
highlevel functional expressions to highperformance 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 languageintegrated 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.

Rowbased effect types for database integration
In the proceedings of TLDI 2012.

The Database Wiki project: a generalpurpose platform for data
curation and collaboration
In SIGMOD Record 40(3), pages 1520, 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 5169, January 2010.

Accumulating bindings
In the proceedings of 2009 Workshop on Normalization by Evaluation.

Unembedding domainspecific 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 HindleyMilner
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 EDIINFRR1258.

An idiom's guide to formlets
Technical report EDIINFRR1263.

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 TTlifting 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.

Postproceedings 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 TypeDriven 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
ICFP 2022,
ESOP 2022,
APLAS 2021,
PEPM 2021 (cochair),
APLAS 2020,
MSFP 2020 (cochair),
POPL 2020,
TFP 2019,
DBPL 2019,
ProWeb 2019,
Haskell Symposium 2018,
ICFP 2018,
MSFP 2018 (cochair),
WWWWPDAI 2018,
ProWeb 2018,
OCaml 2017,
ML Family Workshop 2017 (chair),
TyDe 2017 (cochair),
PLACES 2017,
POPLERC 2017,
ICFPERC 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