07 June 2015     

Yuriy Polyulya presented at Scala Days Amsterdam 2015


If you’re using a structure that’s very like a monad, but isn’t one, then maybe it’s an arrow. Arrows are a general functional programming technique, popular in Haskell, but so far undeservedly overlooked in Scala.

This is a short talk and study case about:

  • functions and syntax extension for arrows
  • arrow type-class
  • what are arrows and how to use them
  • arrows and categories
  • arrows and monads.


View slides online



  • John Hughes. November 10, 1998, Generalising Monads to Arrows.
  • Chris Heunen and Bart Jacobs, Arrows, like Monads, are Monoids.
  • Ted Cooper (theod@pdx.edu), CS510 – Spring 2014, Arrow Basics.
  • John Hughes, S-41296 Sweden, Programming with Arrows.
  • Robert Atkey, LFCS, 2008, What is a Categorical Model of Arrows?
  • Kazuyuki Asada, Kyoto 606-8502, Japan, Arrows are Strong Monads.
  • K. Asada, I. Hasuo, (CMCS 2010), 2010, Categorifying computations into components via arrows as profunctors.
  • Thorsten Altenkirch, James Chapman, Tarmo Uustalu, Monads Need Not Be Endofunctors.
  • Sam Lindley, Philip Wadler, Jeremy Yallop, 2008, Idioms are oblivious, arrows are meticulous, monads are promiscuous.

About Yuriy

Yuriy Polyulya @polyulya is a Software Developer @ Workday and is a member of the Grid Team. The Grid Team use Scala, Akka, Play and Spray to provide Workday’s elastic job execution evironment.