We were discussing partiality today. The approach I presented is joint work with Venanzio Capretta (Ottawa) and Tarmo Uuustalu (Tallinn). Have a look at the definition of the partiality monad in Haskell, you also find some examples. However, I have left out the definition of lfp (least fix point) s.t. you have some fun. An extreme programming spec of lfp is that the programs fib and fac shoiuld work, e.g.