~/conference

ICFP 2023

date:2023-09-04..2023-09-09
location:Seattle, United States
series:ICFP · 4 editions
editions:[ICFP 2020, ICFP 2022, ICFP 2023, ICFP 2025]

The 28th ACM SIGPLAN International Conference on Functional Programming will be in Seattle, WA, USA on 4–9 September 2023. ICFP’s main research paper track will be on September 5-7 (Tuesday-Thursday), with workshops, tutorials, and other events on September 4 and 8-9 (Monday, and Friday-Saturday). Registration is now open! To locate the rooms, you can click here to view the floor plans provided by The Westin Seattle. The ICFP 2023 Discord instance is here.

titleauthorlength
WelcomeNikhil Swamy06m
ICFP 2023 opens in Seattle with an acknowledgement of the traditional Salish lands and a QR code linking to an article about local Indigenous issues. The…
Organiser on
Programming for the planetAnil Madhavapeddy01h 11m
A reproducible pipeline built in OCaml (the urrent DSL) composes satellite inputs, Dockerized science scripts and Python wrappers into traceable dataflows…
Talk on
As low-level as possible, but no lowerAndreas Rossberg01h 06m
WebAssembly claims a rigorous, fully formalized spec with multiple mechanizations and a reference interpreter; a new spec-DSL now generates the formal rules…
Talk on
Is Sized Typing for Coq Practical?Jonathan Chan, Yufeng Li, William J. Bowman25m
Implementation of CIC^ sized type theory inside a Coq 8.12 kernel fork produces a full size-inference pipeline that emits difference constraints solved by…
Talk on
A General Fine-Grained Reduction Theory for Effect HandlersFilip Sieczkowski, Mateusz Pyzik, Dariusz Biernacki27m
Presents a fine-grained reduction semantics for deep effect handlers that gives confluence and standardisation proofs (adapting Takahashi/McKinna techniques)…
Talk on
Dependently-Typed Programming with Logical Equality ReflectionYiyun Liu, Stephanie Weirich31m
System DE is an explicitly typed core calculus that separates a terminating logical fragment from a potentially diverging programmatic fragment using modes for…
Talk on
Modular Models of Monoids with OperationsZhixuan Yang, Nicolas Wu28m
A categorical framework presents equational theories of monoids equipped with arbitrary operations and shows an explicit monoid-theory correspondence: the…
Talk on
A Graded Modal Dependent Type Theory with a Universe and Erasure, FormalizedAndreas Abel, Nils Anders Danielsson, Oskar Eriksson30m
A graded dependent type theory is formalized in Agda (≈39,000 lines) with Π, weak/strong Σ, Nat, Empty, a universe, and a parameterized semiring‑like modality…
Talk on
With or Without You: Programming with Effect ExclusionMatthew Lutze, Magnus Madsen, Philipp Schuster, Jonathan Immanuel Brachthäuser27m
A new Hindley‑Milner style type-and-effect system adds union, intersection and complement to express “any effects except these” and implements effect exclusion…
Talk on
Special Delivery: Programming with Mailbox TypesSimon Fowler, Duncan Paul Attard, Franciszek Sowul, Simon J. Gay, Phil Trinder26m
Pat implements mailbox types that model each mailbox as a commutative regular expression and statically rule out protocol violations (double put, missing…
Talk on
Combinator-Based Fixpoint Algorithms for Big-Step Abstract InterpretersSven Keidel, Sebastian Erdweg, Tobias Hombücher28m
Library of 12 fixpoint combinators composes to control big‑step abstract interpreters: each combinator enforces one of three divergence fixes (cut off…
Talk on
HasChor: Functional Choreographic Programming for AllGan Shen, Shun Kashiwa, Lindsey Kuper30m
HasChor is a Haskell library that encodes choreographies as a monad and compiles them to per-node programs via endpoint projection implemented with freer…
Talk on
More Fixpoints!Joachim Breitner30m
Library implements lazy sets and lazy booleans by wrapping an imperative propagator network behind a pure API using unsafePerformIO, so recursive equations…
Talk on
The Cogent and Dargent approach to facilitating verified software developmentChristine Rizkallah01h 07m
Cogent is a restricted functional language with a linear type system and a certifying compiler that emits C, getter/setter code and Isabelle/HOL refinement…
Talk on
TypeScript: Static types for JavaScriptAnders Hejlsberg01h 11m
Adds a static, erasable type layer to JavaScript that compiles back to plain JS, ships since October 2012, and now ranks in the top five languages on GitHub…
Talk on
Student research contest talksDaniel Hillerström, J. Garrett Morris32m
Six five-minute student reports present concrete artifacts and results: a semantics for higher-order hardware descriptions with a normalization theorem and…
Talk on
Programming contest reportAymeric Fromherz17m
ICFP 2023 programming contest optimizes musician placement on a rectangular stage with blocking by other musicians and pillars, attendees (500–3,000) having…
Talk
Reflecting on Random GenerationHarrison Goldstein, Samantha Frohlich, Meng Wang, Benjamin C. Pierce27m
Presents reflective generators that combine free generators + partial monadic profunctors so a generator can run “backwards” to recover random choices that…
Talk on
Modularity, Code Specialization, and Zero-Cost Abstractions for Program Verifica...Son Ho, Aymeric Fromherz, Jonathan Protzenko30m
Implements a userland F metaprogram that performs whole-call-graph code specialization for Low and compiles to readable C, producing an extra compiler stage…
Talk on
Etna: An Evaluation Platform for Property-Based TestingJessica Shi28m
Etna is a multilanguage evaluation platform that runs property‑based testing experiments across Coq and Haskell, uses handcrafted mutants and mutation testing…
Talk on
Higher-Order Property-Directed ReachabilityHiroyuki Katsura, Naoki Kobayashi, Ryosuke Sato28m
Formalizes a higher-order extension of PDR that extends PDR to nu-HFL(Z) so transition systems can be described by higher-order recursive functions, implements…
Talk on
Formal Specification and Testing for Reinforcement LearningMahsa Varshosaz, Mohsen Ghaffari, Einar Broch Johnsen, Andrzej Wąsowski29m
Defines a declarative DSL called BDL domain-specific language that encodes TD backup diagrams, gives a denotational semantics, and generates executable specs…
Talk on
Verifying Reliable Network Components in a Distributed Separation Logic with Dep...Léon Gondelman, Jonas Kastberg Hinrichsen, Mário Pereira, Amin Timany, Lars Birkedal30m
Claims a verified reliable client–server communication stack implemented in an OCaml-like language (about 300–400 lines of code) that runs over UDP and…
Talk on
Timely ComputationConal Elliott34m
Defines a digital circuit as an analog circuit used in a disciplined way and formalizes that notion in Agda formalization, embedding discrete meanings into…
Talk on
Embedding by UnembeddingKazutaka Matsuda, Samantha Frohlich, Meng Wang, Nicolas Wu27m
Presents a concrete recipe that turns a tagless‑final (HOAS) interface into de Bruijn terms via embedding by unembedding, exposing when HOAS fails and how to…
Talk on
A well-known representation of monoids and its application to the function ‘vect...Wouter Swierstra25m
Shows how representing a monoid as endofunctions yields difference Naturals so monoidal laws hold definitionally, letting a tail-recursive accumulator for…
Talk on
MacoCaml: Staging Composable and Compilable MacrosNingning Xie, Leo White, Olivier Nicole, Jeremy Yallop32m
MacoCaml implements compile‑time code generation inside the OCaml compiler, treating macros as compile-time bindings and using quotation/splice staging so…
Talk on
Modal FRP for all: Functional reactive programming without space leaks in Haskel...Patrick Bahr29m
A modal FRP language Ratus is implemented as a Haskell library plus a GHC plugin that enforces stricter typing: a later modality for time-shifted values and a…
Talk on
Generic Programming with Extensible Data Types: Or, Making Ad Hoc Extensible Dat...Alex Hubers, J. Garrett Morris30m
Claims a practical calculus, System Rω, that extends Fω with row types and higher‑order rows to express generic operations over unknown labels; implements…
Talk
Asynchronous Modal FRPPatrick Bahr, Rasmus Ejlers Møgelberg30m
Async RaTT is a new modal language that compiles complete programs to machines consuming asynchronous input channels and emitting outputs, using an exist-later…
Talk on
Typing Records, Maps, and StructsGiuseppe Castagna28m
Proposes a type theory that unifies struct-style and map-style records with union, intersection, and negation types, models record values as quasi-constant…
Talk on
Awards18m
The ceremony awards the most influential paper of ICFP 2013 — Handlers in Action (Ohad Kamar, Sam Linley, Nicholas Ruri) with a $1,000 prize, citing its first…
Organiser
JFP at ICFPGabriele Keller01m
Announcement says JFP runs a JFP to ICFP track started in 2020 that lets original JFP articles — explicitly not extended versions of conference papers — be…
Talk on
Diversity, equality, and inclusion at ICFPDaan Leijen06m
ICFP creates a new coordinated diversity effort with a standing committee, a long-term mentoring program that currently matches about 300 mentees and 200…
Talk on
PC Chair's reportSam Lindley14m
ICFP receives 90 submissions this year, splits into 17 PC and 73 non‑PC papers, and accepts 33 papers (37% overall) with 10 unconditional and 23 conditional…
Talk on
ICFP 2024 announcementMarco Gaboardi05m
ICFP 2024 will be in Milan, Italy, with the main venue a conference center (not a hotel) offering a full-floor program space and basement rooms for workshops…
Organiser
The Verse Calculus: A Core Calculus for Deterministic Functional Logic Programmi...Lennart Augustsson, Joachim Breitner, Koen Claessen, Ranjit Jhala, Simon Peyton Jones, Olin Shivers, Guy L. Steele Jr., Tim Sweeney30m
A new core calculus (VC) gives a small-step rewrite semantics for a deterministic functional logic language and implements unification and logical variables as…
Talk on
Explicit Refinement TypesJad Elkhaleq Ghalayini, Neel Krishnaswami29m
System called λert implements refinement types that require explicit, checkable proofs instead of SMT solving, supporting quantifiers and induction; key claim…
Talk on
FP²: Fully in-Place Functional ProgrammingAnton Lorenzen, Daan Leijen, Wouter Swierstra30m
Formal system proves a large class of pure functions can run with no allocation or deallocation and constant stack space when their arguments are unique, and…
Talk on
Flexible Instruction-Set Semantics via Abstract MonadsThomas Bourgeat, Ian J Clester, Andres Erbsen, Samuel Gruetter, Pratap Singh, Andy Wright, Adam Chlipala36m
Claims a single Haskell-based core semantics, parameterized by a Risk5Machine type class over monads, supports testing, interactive proof, model checking and…
Talk on
LURK: Lambda, the Ultimate Recursive KnowledgeNada Amin, John Burnham, François Garillot, Rosario Gennaro, Chhi’mèd Künzang, Daniel Rogozin, Cameron Wong31m
Lurk is a LISP-based language plus a universal interpreter circuit that lets programs be supplied as data so zk proofs verify runs instead of flattened…
Talk on
How to Evaluate Blame for Gradual Types, Part 2Lukas Lazarek, Ben Greenman, Matthias Felleisen, Christos Dimoulas30m
Empirical study instruments a rational-programmer procedure, mutates GTB benchmark programs, and runs three TyRet/Racket semantics (eraser, transient, natural)…
Talk on
Intrinsically Typed Sessions with CallbacksPeter Thiemann32m
Claims a practical embedding of session types that avoids host-language linear types by representing protocols as an indexed command data structure of…
Talk on
What Happens When Students Switch (Functional) LanguagesKuang-Chen Lu, Shriram Krishnamurthi, Kathi Fisler, Ethel Tshukudu29m
Two course studies compare Racket, Pyret, and Python to measure transfer, using homework and exams rather than lab tasks. 87% of students report no Pyret…
Talk
Dependent Session Protocols in Separation Logic from First PrinciplesJules Jacobs, Jonas Kastberg Hinrichsen, Robbert Krebbers28m
Three-layer design builds session protocols from mutable references: one-shot channels, then functional session channels, then imperative endpoints; specs use…
Talk on
Calculating Compilers for ConcurrencyPatrick Bahr, Graham Hutton30m
Paper shows a method that turns a high‑level choice trees semantics into a correct-by-construction compiler by adding a codensity construction, yielding…
Talk on
Read/write factorizable programsSiddharth Bhaskar, Jakob Grue Simonsen25m
Claim: read/write factorization yields a clean syntactic class of programs over strings that exactly captures FP when recursion is non‑nested and FL for tail…
Talk on
Trustworthy Runtime Verification via BisimulationRyan G. Scott, Mike Dodds, Ivan Perez, Alwyn E. Goodloe, Robert Dockins30m
CopilotVerifier automatically proves that a Copilot Haskell stream monitor and its compiled C (Clang→LLVM) output produce equivalent observable behavior by…
Talk on
Bit-Stealing Made Legal: Compilation for Custom Memory Representations of Algebr...Thaïs Baudon, Gabriel Radanne, Laure Gonnord32m
A compiler and DSL called ribbit accepts a high‑level ADT plus a separate memory type, emits LLVM IR, and proves pattern‑match compilation correct; it…
Talk on
Fireside chatAmal Ahmed, Felix Klock, Greg Morrisett01h 08m
History of Rust traces concrete choices: adoption of explicit lifetimes evolving into non-lexical lifetimes to handle lookup/mutation patterns, planning…
Panel on
Ask me anythingTim Sweeney42m
A new language called Verse implements functional logic with an effect system and a strong type system that scales toward proofs; it uses transactional memory…
Talk on
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.