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.
Doo bee doo bee doo. Lukas Convent, Sam Lindley, Conor McBride, and Craig McLaughlin. In the Journal of Functional Programming (special issue on algebraic effects and handlers) 30:e9, March 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.
Shallow effect handlers. Daniel Hillerström and Sam Lindley. In the proceedings of APLAS 2018.
Continuation passing style for effect handlers. Daniel Hillerström, Sam Lindley, Robert Atkey, and KC Sivaramakrishnan. In the proceedings of FSCD 2017.
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.
Lightweight functional session types. Sam Lindley and J. Garrett Morris. In Behavioural types: from theory to tools. June 2017.
Mixing metaphors: actors as channels and channels as actors. Simon Fowler, Sam Lindley, and Philip Wadler. In the proceedings of ECOOP 2017.
Do be do be do. Sam Lindley, Conor McBride, and Craig McLaughlin. In the proceedings of POPL 2017.
Embedding session types in Haskell. Sam Lindley and J. Garrett Morris. In the proceedings of Haskell 2016.
Liberating effects with rows and handlers. Daniel Hillerström and Sam Lindley. In the proceedings of TyDe 2016.
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.
Conflation confers concurrency. Robert Atkey, Sam Lindley, and J. Garrett Morris. In the proceedings of WF 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.
A semantics for propositions as sessions. Sam Lindley and J. Garrett Morris. In the proceedings of ESOP 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.
Sessions as propositions. Sam Lindley and J. Garrett Morris. In the proceedings of PLACES 2014.
Effective quotation. James Cheney, Sam Lindley, Gabriel Radanne, and Philip Wadler. In the proceedings of PEPM 2014.
Hasochism: the pleasure and pain of dependently typed Haskell programming. Sam Lindley and Conor McBride. In the proceedings of Haskell 2013.
Handlers in action. Ohad Kammar, Sam Lindley and Nicolas Oury. In the proceedings of ICFP 2013.
A practical theory of language-integrated query. James Cheney, Sam Lindley, and Philip Wadler. In the proceedings of ICFP 2013.
Lenses for web data. Raghu Rajkumar, Sam Lindley, Nate Foster, and James Cheney. In the proceedings of BX 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.
Embedding F. Sam Lindley. In the proceedings of WGP 2012.
Row-based effect types for database integration. Sam Lindley and James Cheney. In the proceedings of TLDI 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.
Using Links to prototype a database wiki. James Cheney, Sam Lindley and Heiko Müller. In the proceedings of DBPL 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.
The arrow calculus. Sam Lindley, Philip Wadler and Jeremy Yallop. In the Journal of Functional Programming 20:1, pages 51-69, January 2010. (extended version)
Accumulating bindings. Sam Lindley. In the proceedings of 2009 Workshop on Normalization by Evaluation.
Unembedding domain-specific languages. Robert Atkey, Sam Lindley, and Jeremy Yallop. In the proceedings of Haskell Symposium 2009. ACM Digital Library.
The essence of form abstraction. Ezra Cooper, Sam Lindley, Philip Wadler and Jeremy Yallop. In the proceedings of APLAS 2008. LNCS 5356.
Many holes in Hindley-Milner. Sam Lindley. In the proceedings of ML 2008. ACM Digital Library.
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).
The arrow calculus. Sam Lindley, Philip Wadler, and Jeremy Yallop. Technical report EDI-INF-RR-1258.
An idiom's guide to formlets. Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. Technical report EDI-INF-RR-1263.
Links: web programming without tiers. Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. In the proceedings of FMCO 2006. LNCS 4709.
Extensional rewriting with sums. Sam Lindley. In the proceedings of TLCA 2007. LNCS 4583.
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.
Reducibility and TT-lifting for computation types. Sam Lindley and Ian Stark. In the proceedings of TLCA 2005. LNCS 3461.
Shrinking reductions in SML.NET. Nick Benton, Andrew Kennedy, Sam Lindley, and Claudio Russo. In the proceedings of IFL 2004. LNCS 3474.