ミクスチャ=ごった煮
宣言(名前のプロファイリング)と定義(束縛、名前のアタッチング)をゴッチャに混ぜて書いた形式をミクスチャと呼ぶことにする。
mixture Succ := { type X; X := int; value e: X; function succ : X->X }
これはミクスチャの例。同じ名前に対して、「宣言が先で、定義は後」というルールさえ守れば、適当に混ぜて書いてよい。
ミクスチャに引数(argument、パラメータとは区別する!)を付けてもよい。引数を仮インスタンスとして使ってよい。
mixture OneFun (S of signature {type X}) := { type X; X := S.X; type Y; function f:X ->Y }
引数なしミクスチャも引数ありミクスチャも、部分インスタンスを定義する。部分インスタンスは特殊なトランスフォーマーなので、結局、ミクスチャはトランスフォーマーの記述形式に過ぎない。
ミクスチャのメリットは、書き方の制約がゆるいので、楽に書けることである。いいかげんに書けることである。人間はいいかげんでモノグサだから、人間が使う記述形式としてはミクスチャが必須だと思う。