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
不起作用。)