(Swansea University)

In Haskell, there are many data types that would form monads were it not for the presence of type-class constraints on the operations on that data type.This is a frustrating problem in practice, because there is a considerable amount of support and infrastructure for monads that these data types cannot use. This talk will demonstrate that a monadic computation can be restructured into a normal form such that the standard monad class can be used.

The technique is not specific to monads --- it can also be applied to other structures, such as applicative functors. One significant use case for this technique is Domain Specific Languages, where it is often desirable to compile a deep embedding of a computation to some other language, which requires restricting the types that can appear in that computation.

http://www.cs.swan.ac.uk/~csnas/papers_and_talks/constrained-monad-problem.pdf

Access Grid Room

Department of Computer Science