代码之家  ›  专栏  ›  技术社区  ›  Cactus

在实例头中使用Barbies的AllBF,而不使用不可判定的实例

  •  0
  • Cactus  · 技术社区  · 4 年前

    我想用 AllBF 从…起 barbies 在实例head中,如下所示:

    import Barbies
    import Barbies.Constraints
    
    class MyClass a where
    
    instance (ConstraintsB b, AllBF MyClass f b) => MyClass (Barbie b f) where
    

    Simon says

    变量 k 经常发生 在约束中 AllBF MyClass f b MyClass (Barbie b f) (使用 UndecidableInstances 允许这样做)

    我想避免 不可判定的实例 f

    instance (ConstraintsB b, AllBF MyClass (f :: Type -> Type) b) => MyClass (Barbie b f) where
    

    但是,这会导致不同的错误:

    AllBF MyF b类 (使用 不可判定的实例

    天真地,我尝试内联定义 AllBF

    instance (ConstraintsB b, AllB (ClassF MyClass (f :: Type -> Type)) b) => MyClass (Barbie b f) where
    

    非法嵌套约束 AllB (ClassF MyClass f) b (使用

    有没有一种方法可以在不打开的情况下创建此实例 ?

    0 回复  |  直到 4 年前
    推荐文章