1. Academic experts
  2. Research students
  3. Students
  4. Alumni
  5. Senior people at City
  6. Non-academic staff
  7. Honorary graduates

Contact Information


Visit Ross Paterson

A309D, College Building

Postal Address

City, University of London
Northampton Square
United Kingdom



I am a member of the Programming Languages and Systems.


PhD Computer Science, University of Queensland, 1989
BSc (Hons) Computer Science, University of Queensland, 1980


1998 - to date City University London, Lecturer
1996 - 1998 University of North London, Lecturer
1990 - 1995 Imperial College London, Research Assistant
1988 - 1989 University of Queensland, Lecturer


My research focusses on programming and programming languages, especially functional programming. I'm interested in functional programming techniques, embedded domain-specific languages based on various notions of computation, program transformations and persistent data structures.



  1. Paterson, R. (2003). Arrows and computation. In Gibbons, J. and Moor, O. (Eds.), The Fun of Programming (pp. 201–222). Palgrave. ISBN 978-1-4039-0772-1.

Conference papers and proceedings (13)

  1. Paterson, R. (2012). Constructing applicative functors. Mathematics of Program Construction 25-27 June, Madrid.
  2. Bernardy, J.P., Jansson, P. and Paterson, R. (2010). Parametricity and dependent types. International Conference on Functional Programming 27-29 September, Baltimore.
  3. Gibbons, J. and Paterson, R. (2009). Parametric datatype-genericity. Workshop on Generic Programming Edinburgh, UK.
  4. Paterson, R. (2001). A new notation for arrows. International Conference on Functional Programming Firenze, Italy.
  5. Paterson, R. (1997). Transforming lazy functions using comportment properties. Programming Language Implementation and Logics of Programs Southampton, UK.
  6. Paterson, R. (1996). Compiling laziness using projections. Static Analysis Symposium Aachen, Germany.
  7. Launchbury, J. and Paterson, R. (1996). Parametricity and unboxing with unpointed types. European Symposium of Programming Linköping, Sweden.
  8. Bennett, A.J., Kelly, P.H.J. and Paterson, R. (1994). Derivation and performance of a pipelined transaction processor. Dallas, Texas.
  9. Cheng, A.S.K. and Paterson, R.A. (1992). An Implementation for a Higher Level Logic Programming Language.
  10. Meijer, E., Fokkinga, M.M. and Paterson, R. (1991). Functional programming with bananas, lenses, envelopes and barbed wire. 5th ACM Conference on Functional Programming Languages and Computer Architecture La Jolla, CA, USA.
  11. Drossopoulou, S., Paterson, R. and Eisenbach, S. (1991). Parameterized Interfaces are Interfaces - AIAS.
  12. Paterson, R. (1991). A Tiny Functional Language with Logical Features.
  13. Staples, J., Robinson, P.J., Paterson, R.A., Hagen, R.A., Craddock, A.J. and Wallis, P.C. (1989). Qu-Prolog: an extended Prolog for meta level programming. Meta-programming in logic programming 1988.

Journal articles (6)

  1. Bernardy, J.P., Jansson, P. and Paterson, R. (2012). Proofs for free - parametricity for dependent types. Journal of Functional Programming, 22(2), pp. 107–152. doi:10.1017/S0956796812000056.
  2. McBride, C. and Paterson, R. (2008). Applicative programming with effects. J. Funct. Prog., 18(1), pp. 1–13. doi:10.1017/S0956796807006326.
  3. Hinze, R. and Paterson, R. (2006). Finger trees: a simple general-purpose data structure. J. Funct. Prog., 16(2), pp. 197–217. doi:10.1017/S0956796805005769.
  4. Bennett, A.J., Kelly, P.H.J. and Paterson, R.A. (2001). Pipelined functional tree accesses and updates scheduling, synchronization, caching and coherence. J FUNCT PROGRAM, 11(4), pp. 359–393. doi:10.1017/S0956796801003793.
  5. Bird, R.S. and Paterson, R. (1999). De Bruijn notation as a nested datatype. Journal of Functional Programming, 9(1), pp. 79–91. doi:10.1017/S0956796899003366.
  6. Bird, R.S. and Paterson, R. (1999). Generalised folds for nested datatypes. Formal Aspects of Computing, 11(2), pp. 200–222.


  1. Paterson, R.A. Reasoning about Functional Programs. (PhD Thesis)