fail better than raise
Only new_proc should be curried
Small style adjustment