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.
Partial> fib 10
Partial> fact 10
I have updated Partial.lhs, the type of lfp was incorrect (because it was obtained by wrongly instantiating a more general type).