We are a group of programming language researchers who study topics about functional language design, type theory, compilers and program analysis.
The University of Hong Kong
Calculi about disjoint intersection types enable an highly modular and compositional programming style that addresses the Expression Problem naturally, and allows for a much more dynamic form of inheritance.
Those works present a novel modular programming style.
Typed First-Class Traits ECOOP 18
Compositional Programming TOPLAS
This work presents a generalized definition of consistent subtyping that works for polymorphic types.
Consistent Subtyping for All TOPLAS
Those works propose a unified syntax that accounts for types and terms which still preserves decidable type-checking.
This paper provides the first mechanized formalization of type inference for higher-ranked polymorphism.
This work proposes a solution of challenge of kind inference for datatype declarations for Haskell98 and modern Haskell.
Kind Inference for Datatypes POPL 20
A new iso-recursive subtyping formulation which takes advantage over other designs on both theoretical side and implementation side.
Revisiting Iso-Recursive Subtyping OOPSLA 20
This paper presents a variant of bi-directional type checking where the type information flows from arguments to functions.
Let Arguments go First ESOP 18
This paper proposes a novel methodology for designing subtyping relations that exploits duality between intersection types and union types.
Type-directed operational semantics(TDOS) is a variant of small-step operational semantics. In TDOS, type annotations become operationally relevant and can affect the result of a program.
Bruno C. d. S. Oliveira Associate Professor
Xuejing (Snow) Huang PhD student
Yaoda Zhou PhD student
Baber Rehman PhD student
Mingqi (Alvin) Xue PhD student
Yaozhu Sun PhD student
Wenjia Ye PhD student
Xu Xue MPhil student
Chen Cui PhD student
Jinhao Tan PhD student
Shengyi Jiang PhD student
Litao (Tony) Zhou PhD student (incoming)
Mechanisation of Higher-order Terms
May 24, 2022
In this problem session I present a simple-looking problem of implementing formalisation involving higher-order terms (or more simply, terms with binders). Our existing tools and techniques are usually good enough...
Compositional Embeddings of DSLs
May 17, 2022
A common approach to defining DSLs is via a direct embedding into a host language. There are several well-known techniques to do such embeddings, including shallow and deep embeddings. However,...
Type Inference for Erlang
Jan 7, 2022
On the understanding of subtyping recursive types
Dec 17, 2021
In this talk, I will first go over Amadio and Cardelli’s seminal work subtyping recursive types", then discuss about the recent paperrevisiting iso-recursive subtyping”. I will also compare Amber rules...
Encoding Labeled and Optional Arguments in λ<: and λi+
Dec 10, 2021
Problem Session