Haxe
Haxeのコンパイラは複数のプラットフォームへのコンパイルの他に以下のような機能を持つ。
列挙型 (enum) はHaxeの重要な特徴である。
Haxeの列挙型は他の多くの言語のように単に値を列挙して識別子をつけるものよりも抽象的で、列挙子(Haxeではenumコンストラクタと呼ぶ)ごとに異なるパラメータつことが可能である。このような列挙型はMLやHaskellのような言語の代数的データ型に相当する。
これにより、自身をパラメータにもって再帰構造をつくったり、木構造を作ったりできる。
以下の例のようにインスタンス化して使う。