@tomwhite also note I have introduced support for unions with multiple types. Would appreciate some feedback on this.