The virtues of semi-explicit polymorphism. Frank Emrich, Sam Lindley, and Jan Stolarek. Extended abstract. Draft, May 2020.
Effects for efficiency: asymptotic speedup with first-class control. Daniel Hillerström, Sam Lindley, and John Longley. Draft, March 2020.
A polymorphic RPC calculus. Kwanghoon Choi, James Cheney, Simon Fowler, and Sam Lindley. Science of Computer Programming 197:102499, October 2020.
Effect handlers via generalised continuations. Daniel Hillerström, Sam Lindley, and Robert Atkey. 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. Frank Emrich, Sam Lindley, Jan Stolarek, James Cheney, and Jonathan Coates. In the proceedings of PLDI 2020.
On the expressive power of user-defined effects: effect handlers, monadic reflection, delimited control. Yannick Forster, Ohad Kammar, Sam Lindley, and Matija Pretnar. In the Journal of Functional Programming (ICFP 2017 special issue) 29:e15, October 2019.
Exceptional asynchronous session types: session types without tiers. Simon Fowler, Sam Lindley, J. Garrett Morris, and Sára Decova. In the proceedings of POPL 2019.
Data Parallel Idealised Algol. Robert Atkey, Michel Steuwer, Sam Lindley, and Christophe Dubach. Draft, July 2018.
On the expressive power of user-defined effects: effect handlers, monadic reflection, delimited control. Yannick Forster, Ohad Kammar, Sam Lindley, and Matija Pretnar. In the proceedings of ICFP 2017.
Mixing metaphors: actors as channels and channels as actors. Simon Fowler, Sam Lindley, and Philip Wadler. In the proceedings of ECOOP 2017.
Coherence generalises duality: a logical explanation of multiparty session types. Marco Carbone, Sam Lindley, Fabrizio Montesi, Carsten Schürmann, and Philip Wadler. In the proceedings of CONCUR 2016.
Talking bananas: structural recursion for session types. Sam Lindley and J. Garrett Morris. In the proceedings of ICFP 2016.
Everything old is new again: Quoted Domain Specific Languages. Shayan Najd, Sam Lindley, Josef Svenningsson, and Philip Wadler. In the proceedings of PEPM 2016.
Generating performance portable code using rewrite rules: from high-level functional expressions to high-performance OpenCL code. Michel Steuwer, Christian Fensch, Sam Lindley, and Christophe Dubach. In the proceedings of ICFP 2015.
Algebraic effects and effect handlers for idioms and arrows. Sam Lindley. In the proceedings of WGP 2014.
Query shredding: efficient relational evaluation of queries over nested multisets. James Cheney, Sam Lindley, and Philip Wadler. In the proceedings of SIGMOD 2014.
Hasochism: the pleasure and pain of dependently typed Haskell programming. Sam Lindley and Conor McBride. In the proceedings of Haskell 2013.
Dr. Formlens, Or: How I Learned to Stop Worrying and Love Monoidal Functors. Raghu Rajkumar, Nate Foster, Sam Lindley and James Cheney. Draft, June 2012.
The Database Wiki project: a general-purpose platform for data curation and collaboration. Peter Buneman, James, Cheney, Sam Lindley and Heiko Müller. In SIGMOD Record 40(3), pages 15-20, September 2011.
DBWiki: a structured wiki for curated data and collaborative data management. Peter Buneman, James Cheney, Sam Lindley and Heiko Müller. In the proceedings of SIGMOD 2011.
Idioms are oblivious, arrows are meticulous, monads are promiscuous. Sam Lindley, Philip Wadler, and Jeremy Yallop. In the proceedings of MSFP 2008. ENTCS 229(5).
Implementing deterministic declarative concurrency using sieves. Sam Lindley. In the proceedings of DAMP 2007. ACM Digital Library.
Normalisation by evaluation in the compilation of typed functional programming languages. Sam Lindley. PhD Thesis, The University of Edinburgh, 2005.