例如,请参阅stdlib中的Data.Maybe.Base - 所有Maybe
,Any
和All
都有just
个构造函数。
Agda允许这些定义。如何指定使用哪一个?
答案 0 :(得分:5)
每种数据类型都有自己的模块。因此,Maybe
,All
和Any
同时是所有类型构造函数和模块。因此,您可以编写Maybe.just
,All.just
或Any.just
来消除构造函数的歧义。或者它可以通过类型推断消除歧义(统一是一个更合适的术语)或者在他们的评论中说明的类似Thilo的显式类型签名。 (然而,如果出现歧义,你会得到一个错误 - 你会得到一个未解决的元素。)