Add more syntactic sugar to do-expression
Upgrade factorial example with new do-expressions