我正在尝试在 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