我有我想要实现数倍的接口:默认实现
Module Type I.
Parameter a : A.
Parameter b : B.
Parameter c : C.
End I.
(并假设每个a
,b
和c
实际上许多定义)。
的实现将是
Module Imp1 <: I.
Definition a : A := bar.
Definition b : B := foo a.
Definition c : C := baz a b.
End I.
现在事实证明,许多实现共享的b
定义(这需要a
),但有c
不同的定义。
如何集中b
的定义?最好不要改变I
或重复大量的定义?
(我想编写一个模块仿BImp
期待a:A
为某种参数,然后我可以Import (BImp a)
。)
从某种意义上说,我希望像Haskell的类型类中的默认实现一样。 –