Class-Dictionary Specialization with Rank-2 Polymorphic Functions
Making expressive Haskell abstractions efficient: a partial evaluator that unlocks specialization for recursive rank-2 polymorphic functions.
Computer scientist · Singapore
I study programming languages, and how to make them more expressive, efficient, and a little more elegant.
Instructor & PhD candidate in Computer Science
National University of Singapore
The program
edge(a, b). edge(b, c). edge(c, d).
path(X, Y) :- edge(X, Y).
path(X, Z) :- path(X, Y),
edge(Y, Z).∅
Highlighted facts are new this round.
01Ideas into papers
Making expressive Haskell abstractions efficient: a partial evaluator that unlocks specialization for recursive rank-2 polymorphic functions.
How close can a functional list get to optimal random access? New variations on Myers lists approach the information-theoretic lower bound.
A paradigm for expressing work-list algorithms correctly and concisely.
02Along the way
03In the classroom
I teach programming, systems, and the mathematics behind them, connecting foundational ideas to the practice of building software.
IT5100ATyped Functional ProgrammingIT5100BStream ProcessingIT5100ESecurity Best PracticesTeaching & course materialsRecipient of the NUS Faculty Teaching Excellence Award, 2025.