Stephan Hoermann

Share

Software Engineer at CBA
@stephanrhm

Stephan is tech lead for the big data ETL tooling team at Commonwealth Bank, bringing functional programming and open source to ETL.He discovered his passion for functional programming and static typing after writing a distributed mass binary analysis framework in Python.

YOW! Lambda Jam 2015 Brisbane

Using Relative Monads for Cheap Syntax

WORKSHOP/JAM

In this workshop we will present a technique based on relative monads that allows one to embed generic syntax involving a monad, m, which can then be simply reused for any relative monad, relative to m. We will:

  • Produce a concrete example of a monad with error handling.
  • Encode the relative monad concept as a type class.
  • Generalise the previous error handling code to work for any relative monad relative to the error type.
  • Convert the previous monad to an instance of a relative monad.
  • Explore working with relative monads and monad transformers.

We will run the workshop in both Scala and Haskell.

You can access the workshop material here: https://github.com/CommBank/lambdajam-relative-monads


Using Relative Monads for Cheap Syntax

TALK –  VIEW SLIDES WATCH VIDEO

We will walk through a production use of this at CBA (converted to Haskell), which has allowed us to cheaply add error handling to new monads and the theory behind it. Finally, we will compare this approach with monad transformers and monad layers.

In this talk we will present a technique based on relative monads that allows one to embed generic syntax involving a monad, m, which can then be simply reused for any relative monad, relative to m.