Parse correctly pointer types in functions receivers
Do not emit {} in case/default
Do not extra indent in case/default
Make `do` literals much more robust.