Schedule
We expect to be following Shonan’s standard template for a 5-day meeting. In a nutshell:
Details of the individual sessions are at the foot of this page.
Discussants
Each technical session will have one person nominated as a discussant. The responsibility of this role is to end the session by responding to the presentations in that session. This might be to provide a personal comment on the presentation; it might be to explain some of the context; it might be to raise some questions, or even (constructively!) criticize the presentation or point at shortcomings.
The goal of the discussant’s time is to spark discussion. This can be discussion between them and the presenter, but it’s even better if they can manage to draw the audience into the discussion. The point is to help everyone think about and reflect upon the presentations that have just taken place. It also serves to enhance the workshop feel, with more people engaging in discussion and discussing the impact of the work being presented as well as potential unsolved problems.
Please contact us if you would like to volunteer as discussant for a particular session. We will volunteer people on Monday morning to fill the remaining discussant roles.
Fishbowl conversations
There are panel discussions at the end of Tuesday and Thursday. We have allocated an hour for each of these, but in a two-hour session at the end of the day. The idea here is that if the discussion has run its course after an hour, we have time to relax and chat before dinner; if the discussion is still going, yet you’ve have enough for the day, you can leave with honour after an hour; but we hopefully do not need to impose a hard stop and stifle a lively discussion.
We will organize these panels as fishbowl discussions. The panel will be initialized with four “fish”, but five chairs; at any point, anyone else can join the fishbowl to speak, and one of the current fish must volunteer to leave. The point is to allow everyone to have a say. The initial fish are: Ningning, Sam, Taro, Philipp on Tuesday; Shin-ya, Eli, Yukiyoshi, Cameron on Thursday.
Puzzles and problems
Participants suggested the following puzzles and problems that we might discuss, during breaks or after dinner. We can revisit these on Friday in case there are outcomes to report.
- Interesting applications that require both deep and shallow handlers
- Solution to the “Reflection without Remorse” problem without reifying computation as data (maybe relate to shallow handlers?)
- Handler-based reinforcement learning: On Reinforcement Learning, Effect Handlers, and the State Monad, Smart Choices and the Selection Monad
- Algebraic theories for practical handlers, eg for concurrency
- Language Server Protocol
- Interactive tutorial for effect handlers
- A new Benchmark Repo Tsar
- Using only continuations (that is callcc, but no assignments etc), find a term
e
and a context C such that:C [ (\x -> (x,x)) e ]
andC [ (\x y -> (x,y)) e e ]
evaluate to different values (Amr).
Detailed Session Schedule
Sun 24th
Mon 25th
Session 1: Opening
- Shonan intro movie (10min)
- self-introductions (60min)
Session 2: Introduction to Effect Handlers
- tutorial (Sam, 60min)
Session 3: Tutorial
- Effect handler languages by example (Jonathan & others, 60min)
- Implementing effects and handlers (Jonathan & others, 60min)
Session 4: Planning & Puzzles
Tue 26th
Session 5: Implementor-Facing Aspects
- (discussant: Paulette)
- modular search (Tom, 17min)
- multiple prompts (Paul, 17min)
- expressiveness (Kazuki, 10min)
- one-shot (Yukiyoshi, 17min)
Session 6: Implementor-Facing Aspects
- (discussant: Taro)
- one-shot (Philipp, 17min)
- lexical handlers (Yizhou, 17min)
- deriving from CPS (Kenichi, 17min)
Session 7: Current Status of Effect Handler Languages
- (discussant: Jeremy Y)
- Effekt (Jonathan, 20min)
- Links (Sam, 20min)
- Granule (Dominic, 20min)
- Eff (Matija, 20min)
Session 8: Panel "Concurrency and Distribution"
- initial fish: Ningning, Sam, Taro, Philipp
Wed 27th
Session 9: Applications
- (discussant: Amr)
- effect handlers for machine learning programming (Ningning, 30min)
- machine learning, causal inference and probabilistic programming (Eli, 30min)
Session 10: Applications
- (discussant: Kenichi)
- quantum programming (Amr, 25min)
- probabilistic logic programming (Tom, 25min)
Thu 28th
Session 11: Programmer-Facing Aspects
- (discussant: Dylan)
- contracts (Cameron, 25min)
- refinement types (Taro, 25min)
Session 12: Programmer-Facing Aspects
- (discussant: Shin-ya)
- Pyro lessons (Eli, 15min)
- grading (Dominic, 40min)
Session 13: Programmer-Facing Aspects
- (discussant: Tachio)
- Curry-Howard for delimited control (Paul & Amr, 25min)
- multi-stage (Yukiyoshi & Jeremy Y, 25min)
- higher-order effects (Tom, 25min)
Session 14: Talk & Panel "Will Effect Handlers Replace Monads?"
- dependent types (William & Paulette, 25min)
- initial fish: Shin-ya, Eli, Yukiyoshi, Cameron
Fri 29th
Session 15: Summary, Book, Next Meeting
Session 16: Talk
- equational reasoning (Paul, 50min)