Specifically, I work on choreographic programming, a paradigm for programming distributed systems in which the entire system is expressed as a single program and then projected into separate programs for each node. In this way, interactions between nodes are manifest and guaranteed to be deadlock-free. We developed HasChor, an embedded domain-specific language in Haskell for choreographic programming, to experiment with language design and build practical distributed systems.
Publications
Freer arrows and why you need them in Haskell
Grant VanDomelen, Gan Shen, Lindsey Kuper, Yao Li
Haskell Symposium 2025Efficient, Portable, Census-Polymorphic Choreographic Programming
Mako Bates, Shun Kashiwa, Syed Jafri, Gan Shen, Lindsey Kuper, Joseph P. Near
PLDI 2025Toward Verified Library-Level Choreographic Programming with Algebraic Effects
Gan Shen, Lindsey Kuper
CP 2024HasChor: Functional Choreographic Programming for All (Functional Pearl)
Gan Shen, Shun Kashiwa, Lindsey Kuper
ICFP 2023 Distinguished Paper AwardVerified Causal Broadcast with Liquid Haskell
Patrick Redmond, Gan Shen, Niki Vazou, Lindsey Kuper
IFL 2022Toward Hole-Driven Development with Liquid Haskell
Patrick Redmond, Gan Shen, Lindsey Kuper
HATRA 2021Toward SMT-Based Refinement Types in Agda
Gan Shen, Lindsey Kuper
HATRA 2021Parameters extraction for equivalent circuit model based on artificial intelligence
Linchun Liu, Zhimin Guan, Gan Shen, Peng Zhao, Gaofeng Wang
ICCEM 2019
Teaching
At UC Santa Cruz, as a teaching assistant
- Foundations of Programming Languages, Spring 2026, Fall 2024, Spring 2022
- Parallel and Concurrent Programming, Spring 2021
- Fundmentals of Compiler Design I, Winter 2020
Services
- Artifact Evaluation Committee, ICFP 2026
- Reviewer, JFP
- Sub-reviewer, OOPSLA 2025, POPL 2022
I co-organized the LSD Seminar from Fall 2023 to Spring 2025.