A coinductive monad for prop-bounded recursion
Verifying haskell programs using constructive type theory