Próbuję dokonać Semigroup
i VerifiedSemigroup
wystąpienie na mój zwyczaj Bool
typu danych zarówno od operatora &&
i operatora ||
:używać nazwanych wystąpień do innych przypadkach
%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
Więc najpierw dokonać nazwie instancji do Semigroup
na operatora &&
:
-- Todos
instance [TodosSemigroup] Semigroup Lógico where
(<+>) a b = a && b
Ale kiedy robię instancję VerifiedSemigroup
, jak mogę powiedzieć Idrisowi, aby użył instancji TodosSemigroup
z Lógico
?
instance [TodosVerifiedSemigroup] VerifiedSemigroup Lógico where
semigroupOpIsAssociative l c r = ?vsemigroupTodos
Ten kod daje mi następujący błąd:
When elaborating type of
Prelude.Algebra.Main.TodosVerifiedSemigroup
, methodsemigroupOpIsAssociative
: Can't resolve type classSemigroup Lógico
@dfeuer, myślę, że problemem jest to, że nie jest zaimplementowana. – chamini2