A categorical programming language - Hagino, Tatsuya (1987)