Ambrose Bonnaire-Sergeant


CS PhD Candidate
Department of Computer Science
Indiana University

Twitter @ambrosebs

Github frenchy64

Blog dissoc



Automatic annotations for Typed Clojure + clojure.spec


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

In submission: Squash the work: A Workflow for Typing Untyped Programs that use Ad-Hoc Data Structures (draft), 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


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]

Strangeloop 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

Strangeloop 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

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)