Java(不幸的是)支持构造函数和方法重载。例如,HashMap有四个构造函数。在弗雷格我不能这样做:
data Map = native java.util.Map
data HashMap = native java.util.HashMap where
native new :: () -> STMutable s HashMap
native new :: Int -> STMutable s HashMap
native new :: Int -> Float -> STMutable s HashMap
native new :: Mutable s Map -> STMutable s HashMap
这不会编译,因为我不能绑定四次“新”。Frege 数据类型中是否可以有四个“Java 构造函数”?