Simplify handling of type signatures

Right now, handling delegate type signature is still complex.

The other parts are made simple by inserting brackets only when
appropriate.

Fix #29
Handle pattern matching in anonymous functions more rigorously

Add brackets in most of cases to be safe.

Related to #30