我想在GADT中隐藏一些类型信息,这里忘记了public bool Process()
{
if (hasError())
return false;
//Metadata analysis code that may write errors
//Note that error log may change here
return !hasError(); //updated by juharr
}
类型
key
如何传递一些相等约束以在其他地方使用它,如:
data Query where
Query :: Ord key => Map.Map key String -> Query
one :: Ord key => key -> Query
one k =
let m = Map.insert k "hello" Map.empty
in Query m
答案 0 :(得分:1)
- 左下角1月6日17:19
如果你只是保持类型变量可见 - 但是普遍量化 - 那么其他人也必须抽象地对待它,但是当你想要访问它并应用你周围的任何约束时它仍然存在。 - 如果你实际上有一个全局证明所有键具有相同的类型,那么你根本不应该把它变成一个变量。如果您只有两到三种类型(并且不打算允许更多类型),您也不应该使用类型变量,而是使用具有不同实例的离散选项的变体类型。