Programme
Monday, 11 June
9:20—9:30: Opening
9:30—10:30: Invited talk
Refactoring reflected,
The team at Kent have built tools for refactoring programs in Haskell, Erlang
and, most recently, OCaml. This talk will reflect on what we have learned in
the process about tool building and refactoring for functional languages – and
indeed about the languages themselves – drawing examples from past and current
work.
10:30—11:00: Break
11:00—12:00: Session chair: Neel Krishnaswami
Liquid: A concurrent calculus with declaring first-order asynchronous functions,
12:00—13:30: Lunch
13:30—14:30: Session chair: Alex Gerdes
Colocation of Potential Parallelism in a Distributed Adaptive Run-time System for Parallel Haskell,
Reversible Choreographies in Haskell,
14:30—16:00: Break
16:00—17:00: Session chair: Hans-Wolfgang Loidl
On Optimizing Bignum Multiplication,
Tuesday, 12 June
9:30—10:30: Session chair: Patrik Jansson
10:30—11:00: Break
11:00—12:00: Session chair: Simon Thompson
12:00—13:30: Lunch
18:00—22:00: Social dinner
Wednesday, 13 June
9:30—10:30: Invited talk
Retrofitting Purity with Comonads,
It is by now well-known how to embed effectful language features
such as I/O and state into purely functional languages using a monadic
type discipline. But if we already have an effectful language, then
it is natural to ask if there a way to carve out a pure subset of it.
In this talk, I will show that this is indeed possible, by using the
dual to monads – comonads! Furthermore, this approach also casts into
type-theoretic our systems-programming friends' use of capability-safe
programming.
10:30—11:00: Break
11:00—12:00: Session chair: Marco T. Morazan
Inductive type refinement by conjugate hylomorphisms,
Folds, Unfolds, and Metaheuristics: Towards Automatic Rewriting and Derivation of Metaheuristics,
12:00—13:30: Lunch
13:30—14:30: Session chair: Peter Achten
Graph Reduction Hardware Revisited,
14:30—15:00: Break
15:00—16:00: Session chair: Magnus Myreen
Strategic Skeleton Composition with Location Aware Remote Data,
16:00—16:10: Closing remarks