Ben Hutchison


Lead Developer of the Consumer Insights team at REA Group

Ben Hutchison is Lead Developer of the Consumer Insights team at REA Group, where he uses Scala, Spark, Amazon Web Services and functional programming to better understand the 6 million consumers who use REA Group’s Australian websites each month. He has also coordinated the Melbourne Scala user group the past 7 years. Ben maintains and/or contributes to a number of open source Scala projects. His particular engineering interests include strong static typing, Scala in the browser client, applying functional programming & type-classes, and the redemption of relational databases.

YOW! Lambda Jam 2017 Sydney

Getting Work Done with Extensible Effects

Workshop – 120 mins.

This hands-on, code-centric session teaches attendees how to use the Eff monad library to build a directory scanner in Scala.

The Eff library is an implementation of Extensible Effects in Scala, developed by Eric Torreborre. It is inspired by Oleg Kiselyov’s Haskell paper ‘Freer Monads, More Extensible Effects’ . Like Monad Transformer stacks and the Free monad, it provides an organising principle for the construction of pure functional programs.

This workshop focuses on teaching attendees how to use Eff to solve an applied software engineering problem, namely a directory scanner. It introduces several common Eff ‘effects’ through 5 incremental exercises:

  • The Async effect to model asynchronous requests
  • Using Either effects for error handling
  • Using Reader effects for dependency injection
  • Writer effects for logging

Materials are available at benhutchison Getting Work Done With Extensible Effect. Solutions are included for all exercises.