如何制作一个依赖类型的仿函数(缺少一个更好的术语)?我想做类似以下的事情:
Module Type Element.
...
End Element.
Module Wrapper (E : Element).
...
End Wrapper.
Module DepentlyTypedFunctor (E : Element) (W : Wrapper E).
...
End DepentlyTypedFunctor.
最后一个定义不起作用,我想我正在寻找正确的语法,如果可能的话。我对这种定义的动机是定义DependentlyTypedFunctor
内的定理,该定理适用于包含Wrappers
的任何实例的所有Element
,类似于如何定义向量定理,{{ 1}}。
答案 0 :(得分:3)
我认为你只是想让Wrapper
成为Module Type
。如果它不是模块类型,那么只有一个这样的模块,你可以只在DependentlyTypedFunctor
上写E
。如果你有Element
的不透明实现,这可能是不够的,在这种情况下,Wrapper
的不同实例可能彼此不相等。
如果这是一个问题,您可能只想使用记录而不是模块。