不自然な例:
signature A =
sig
type t
val x: t
end
signature B =
sig
type t
val y: t
end
signature C = sig include A B end
明らかに、これはでtype t
2回発生する苦情を引き起こしC
ます。t
しかし、2つを同等にして、最終的に次のようにしたいと表現する方法はありますか。
signature C =
sig
type t
val x: t
val y: t
end
のようなあらゆる種類のばかげた構文を試しinclude B where type t = A.t
ましたが、当然のことながら機能しませんでした。試し忘れたことはありますか?
また、これは言語の構文に明らかな(または欠如している)ものがないかチェックすることで簡単に答えられることを知っていますが、インターネット上のどこにも完全な文法を見つけることができませんでした。
(FWIW、私がこれをやろうとしている実際の理由は、Haskellスタイルのモナドなどです。ここで、aはaとMonadPlus
aの単なる混合です。現時点では、inの内容を繰り返しているだけです。理想よりも。)Monad
Alternative
ALTERNATIVE
MONAD_PLUS