Ambrose Bonnaire-Sergeant


Untypable LLC, Owner/Consultant

Email: (

Twitter (unmonitored): @ambrosebs

GitHub: frenchy64




2021-02-01: I was interviewed recently for Strange Loop's YouTube channel

2020-04-11: I'm exited to announce typed.clj/spec, a metalanguage for spec!


PhD Dissertation: Typed Clojure in Theory and Practice (ProQuest, IUScholarWorks)

Thesis Defense: (talk PDF, talk PDF w/ presenter notes w/o animation, Keynote, Video (practice))

Unpublished manuscript: Squash the work: A Workflow for Typing Untyped Programs that use Ad-Hoc Data Structures (draft, Experiments), with Sam Tobin-Hochstadt

Thesis Proposal: (Proposal PDF, talk PDF, Keynote)

Qualifying exam: (answers, talk PDF, talk PDF w/ notes, Keynote, blog transcription)

ESOP 2016: Practical Optional Types for Clojure (with appendix), with Sam Tobin-Hochstadt and Rowan Davies. (code, talk PDF, Keynote, arXiv)

Honours Dissertation: A Practical Optional Type System for Clojure , supervised by Rowan Davies. (slides)


ECOOP 2018 Artifact Evaluation Committee


Interview for Strange Loop's YouTube channel, 1st February 2021.

Compose::Melbourne Keynote, 2nd September 2019. The Hidden Data Flow in Types (Abstract, PDF, Keynote)

The REPL Podcast, August 12th 2019: Episode 28

BloomingtonJS June 27th 2019 talk: Prototypal Inheritance [PDF, Keynote, Notes]

PL Wonks February 8th 2019 talk: Local Type Inference with Symbolic Closures [PDF, Keynote]

Clojure Conj Unsession November 29th 2018 talk: Typed Clojure: Wishful Thinking [PDF, Keynote]

PL Wonks April 20th 2018 talk: A Typed-Macro Writer’s Toolkit [Video (TBA), Abstract (TBA), PDF, Keynote]

Clojure Conj 2017 talk: Tool-assisted spec Development [Video, Abstract, PDF, Keynote]

PL Wonks September 22nd 2017 talk: Space-Efficient Runtime Tracking [Video, Abstract, PDF, Keynote]

Gradual Typing Across the Spectrum 2017 talk: Squash the work! Inferring Useful Types and Contracts via Dynamic Analysis [PDF, Keynote]

Indiegogo Campaign 2016: Automatic Annotations for Typed Clojure + clojure.spec

Gradual Typing Across the Spectrum 2016 talk: Inferring Structural Types from Tests [PDF, Keynote]

OPLSS 2016 Student talk: Inferring Structural Types from Tests [Keynote]

Houston Clojure User Group Talk 2015: Communicating between typed/untyped namespaces [Code]

Boston Clojure User Group Talk 2015: Getting started with Typed Clojure + Building a typed contracts framework [Code]

Strange Loop 2015 Talk: Typed Clojure: From Optional to Gradual Typing [Slides, Keynote]

Indiegogo Campaign 2015: Gradual Typing for Clojure Campaign

CodeMesh 2014 Talk: Typed Clojure in Practice [Slides, Keynote]

Clojure Toronto User Group Talk 2014: Typed Clojure Demo

Strange Loop 2014 Talk: Typed Clojure in Practice [Slides, Keynote]

ILC 2014 Invited Talk: Typed Clojure [Keynote]

Philly ETE 2014: What if Type Checkers Were More Like Linters? [Slides, Keynote]

Lambda Jam Brisbane 2013 Workshop: core.typed Workshop , core.typed talk

Indiegogo Campaign 2013: Typed Clojure Campaign

Cognicast Episode 042, October 8th, 2013: Recording

Illegal Argument Podcast 2013: Recording

Melbourne Functional User Group Talk 2013: Meetup [Keynote]

clj-syd User Group Talk 2013: Meetup

Clojure Conj 2012: Typed Clojure

Clojure Conj 2011: Introduction to Logic Programming (Slides)

Google Summer of Code (Clojure)

GSoC 2015 Administrator: Clojure

GSoC 2015 Mentor: Akhilesh Srikanth (Typed Transients for Clojure)

GSoC 2015 Mentor: Aravind K N (Typed Clojure Core Annotations)

GSoC 2014 Administrator: Clojure

GSoC 2014 Mentor: Nicola Mometto (tools.analyzer extensions: cljs port, documentation)

GSoC 2014 Mentor: Minori Yamashita (Typed ClojureScript Library Annotations)

GSoC 2014 Mentor: Di Xu (Typed Clojure: Heterogeneous operations & Dotted Polymorphism)

GSoC 2013 Student: core.typed: Extensions and Documentation

GSoC 2012 Student: Typed Clojure (Optional Static Type System)