8
Tại sao 5 :: Sum Integer
làm việc trong các thông dịch viên nhưng với mộtTại sao 5 :: Sum Integer làm việc theo nghĩa đen?
newtype NovoTipo a = NovoTipo a
6 :: NovoTipo Integer
không hoạt động?
Tại sao 5 :: Sum Integer
làm việc trong các thông dịch viên nhưng với mộtTại sao 5 :: Sum Integer làm việc theo nghĩa đen?
newtype NovoTipo a = NovoTipo a
6 :: NovoTipo Integer
không hoạt động?
Bạn có thể viết các chữ số cho bất kỳ loại nào có phiên bản Num
. Sum
has it, trong khi kiểu mới của bạn thì không.
Bạn có thể bật GeneralizedNewtypeDeriving
trong ghci theo cách sau:
:set -XGeneralizedNewtypeDeriving
Sau đó, bạn có thể viết:
newtype NovoTipo a = NovoTipo a deriving (Num)
Và sau đó 6 :: NovoTipo Integer
nổi gõ.
Có lẽ đáng nói rằng w/o phần mở rộng đó, thể hiện vẫn có thể được cung cấp với gói thủ công (un). –