Gibbons, J., Hutton, G., & Altenkirch, T. (2001). When is a function a fold or an unfold?.