We expect to be following Shonan’s standard template for a 5-day meeting. In a nutshell:

  Sun 24th Mon 25th Tue 26th Wed 27th Thu 28th Fri 29th
07:30-09:00 breakfast breakfast breakfast breakfast breakfast
09:00-10:30 Session 1
Session 1: Opening
  • Shonan intro movie (10min)
  • self-introductions (60min)
Session 5
Session 5: Implementor-Facing Aspects
  • (discussant: Paulette)
  • modular search (Tom, 17min)
  • multiple prompts (Paul, 17min)
  • expressiveness (Kazuki, 10min)
  • one-shot (Yukiyoshi, 17min)
Session 9
Session 9: Applications
  • (discussant: Amr)
  • effect handlers for machine learning programming (Ningning, 30min)
  • machine learning, causal inference and probabilistic programming (Eli, 30min)
Session 11
Session 11: Programmer-Facing Aspects
  • (discussant: Dylan)
  • contracts (Cameron, 25min)
  • refinement types (Taro, 25min)
Session 15
Session 15: Summary, Book, Next Meeting
10:30-11:00 break break break break break
11:00-12:00 Session 2
Session 2: Introduction to Effect Handlers
  • tutorial (Sam, 60min)
Session 6
Session 6: Implementor-Facing Aspects
  • (discussant: Taro)
  • one-shot (Philipp, 17min)
  • lexical handlers (Yizhou, 17min)
  • deriving from CPS (Kenichi, 17min)
Session 10
Session 10: Applications
  • (discussant: Kenichi)
  • quantum programming (Amr, 25min)
  • probabilistic logic programming (Tom, 25min)
Session 12
Session 12: Programmer-Facing Aspects
  • (discussant: Shin-ya)
  • Pyro lessons (Eli, 15min)
  • grading (Dominic, 40min)
Session 16
Session 16: Talk
  • equational reasoning (Paul, 50min)
12:00-13:30 lunch lunch, group photo lunch lunch lunch
13:30-15:30 check-in
(15:00-)
Session 3
Session 3: Tutorial
  • Effect handler languages by example (Jonathan & others, 60min)
  • Implementing effects and handlers (Jonathan & others, 60min)
Session 7
Session 7: Current Status of Effect Handler Languages
  • (discussant: Jeremy Y)
  • Effekt (Jonathan, 20min)
  • Links (Sam, 20min)
  • Granule (Dominic, 20min)
  • Eff (Matija, 20min)
excursion Session 13
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)
farewell
15:30-16:00 check-in break break excursion break
16:00-18:00 check-in Session 4
Session 4: Planning & Puzzles
Session 8
Session 8: Panel "Concurrency and Distribution"
  • initial fish: Ningning, Sam, Taro, Philipp
excursion Session 14
Session 14: Talk & Panel "Will Effect Handlers Replace Monads?"
  • dependent types (William & Paulette, 25min)
  • initial fish: Shin-ya, Eli, Yukiyoshi, Cameron
18:00-19:30 reception dinner dinner banquet dinner
19:30-21:00 reception free free banquet free
21:00- free free free free free

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 ] and C [ (\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)