#$ A mixed union/normal constructor is used. (kkc: added Str inst) # Fun # SomethingElse(123, ()) # AndElse Fun Fun (I32 -> I32) SomethingElse I32 Unit AndElse inst Str.Str Fun print-str (s) case s Fun(_) Str.print-str('Fun') SomethingElse(x, y) Str.print-str('SomethingElse(\(x), \(y))') AndElse Str.print-str('AndElse') chars (self): unreachable() x = Fun(fn x: x + 1) Str.print-str('\(x)\n') y = SomethingElse(123, Unit) Str.print-str('\(y)\n') z = AndElse Str.print-str('\(z)\n')