Named union fields

completes #112