if c.value.is_a?(AST::Identifier)
                  out.puts "if #{union_discriminant_name_underscore} == #{type_string union.discriminant.type}.#{c.value.name}:"
                else
                  out.puts "if #{union_discriminant_name_underscore} == #{c.value.value}:"