Sto cercando di fare un esempio Semigroup
e VerifiedSemigroup
sul mia abitudine Bool
tipo di dati sia dell'operatore &&
e operatore ||
:Utilizzare chiamato istanze per altri casi
%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
Così ho prima fanno una istanza denominata per Semigroup
il &&
dell'operatore:
-- Todos
instance [TodosSemigroup] Semigroup Lógico where
(<+>) a b = a && b
Tuttavia, quando si crea l'istanza VerifiedSemigroup
, come si dice a Idris di utilizzare l'istanza di Lógico
?
instance [TodosVerifiedSemigroup] VerifiedSemigroup Lógico where
semigroupOpIsAssociative l c r = ?vsemigroupTodos
Questo codice mi dà il seguente errore:
When elaborating type of
Prelude.Algebra.Main.TodosVerifiedSemigroup
, methodsemigroupOpIsAssociative
: Can't resolve type classSemigroup Lógico
@dfeuer, penso che il problema è che non è implementata. – chamini2