Improve branch-types and/or handling
Propagate values type to receive
Add some type annotations