Tôi đang cố gắng để làm cho một trường hợp Semigroup
và VerifiedSemigroup
trên tùy chỉnh của tôi Bool
datatype cả trên hành &&
và điều hành ||
:Sử dụng tên trường cho các trường hợp khác
%case data Lógico = Cierto | Falso
(&&) : Lógico -> Lógico -> Lógico
(&&) Cierto Cierto = Cierto
(&&) _ _ = Falso
(||) : Lógico -> Lógico -> Lógico
(||) Falso Falso = Falso
(||) _ _ = Cierto
Vì vậy, lần đầu tiên tôi thực hiện một tên dụ cho Semigroup
trên số &&
nhà điều hành:
-- Todos
instance [TodosSemigroup] Semigroup Lógico where
(<+>) a b = a && b
Nhưng khi tạo ví dụ VerifiedSemigroup
, làm thế nào để tôi báo cho Idris sử dụng ví dụ TodosSemigroup
của Lógico
?
instance [TodosVerifiedSemigroup] VerifiedSemigroup Lógico where
semigroupOpIsAssociative l c r = ?vsemigroupTodos
Đó là mã mang lại cho tôi những lỗi sau:
When elaborating type of
Prelude.Algebra.Main.TodosVerifiedSemigroup
, methodsemigroupOpIsAssociative
: Can't resolve type classSemigroup Lógico
@dfeuer, tôi nghĩ rằng vấn đề là không được thực hiện. – chamini2