Ross Paterson. The Fun of Programming, edited by Jeremy Gibbons and Oege de Moor, Palgrave, 2003, 201-222. Abstract Many programs and libraries involve components that are `function-like', in that they take inputs and produce outputs, but are not simple functions from inputs to outputs. This chapter explores the features of such `notions of computation', defining a common interface, called `arrows