4
是否可以使用record syntax来声明constrained data type?我的尝试是否可以使用记录语法来声明受限数据类型?
data ConstrainedRecord a where
ConstrainedRecord :: Num a => { first :: a, second :: a }
导致GHC抱怨“记录语法在这里是非法的”。
是否可以使用record syntax来声明constrained data type?我的尝试是否可以使用记录语法来声明受限数据类型?
data ConstrainedRecord a where
ConstrainedRecord :: Num a => { first :: a, second :: a }
导致GHC抱怨“记录语法在这里是非法的”。
是的,但在GADT syntax你总是要明确指定构造函数的返回类型:
(同样,这可能会派上用场:
deriving instance (Show a) => Show (ConstrainedRecord a)
使用StandaloneDeriving
,因为一个正常的deriving
不起作用。)