Handle alternative typed record expression

* Add tests
* Simplify code