Functional Programming with Hope (Ellis Horwood Series in Computers and Their Applications)