为什么这段代码需要使用
当我阅读
另外,如果加载了
ScopedTypeVariables
扩展?{-# LANGUAGE ScopedTypeVariables #-}
char = case Just '3' of
Just (x :: Char) -> x
Nothing -> '?'
当我阅读
ScopedTypeVariables
的文档时,它似乎意味着将函数体中的类型变量与父函数签名统一。然而,这段代码片段并没有统一任何类型变量!另外,如果加载了
ScopedTypeVariables
,但没有同时加载 ExplicitForAll
,会有什么影响?所有其他 ScopedTypeVariables
的用例似乎都需要 ExplicitForAll
才能实际工作。但在上面的代码片段中,没有 ExplicitForAll
。
a
是普遍量化的吗?还是从其他地方引入的? - CMCDragonkai(x :: a)
在其作用域中定义了a
,其类型为x
的类型。 @CMCDragonkai - Ørjan Johansen