我正在尝试在 operator和 operator上对我的自定义数据类型Semigroup
创建一个和VerifiedSemigroup
实例:Bool
&&
||
%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
所以我首先为over 运算符创建一个命名实例:Semigroup
&&
-- Todos
instance [TodosSemigroup] Semigroup Lógico where
(<+>) a b = a && b
但是在创建VerifiedSemigroup
实例时,我如何告诉 Idris 使用 的TodosSemigroup
实例Lógico
?
instance [TodosVerifiedSemigroup] VerifiedSemigroup Lógico where
semigroupOpIsAssociative l c r = ?vsemigroupTodos
该代码给了我以下错误:
详细说明类型时
Prelude.Algebra.Main.TodosVerifiedSemigroup
,方法semigroupOpIsAssociative
:无法解析类型类Semigroup Lógico