{-# LANGUAGE TypeSynonymInstances #-}
-- data Op r a = (->) a r
instance Contravariant (Op r) wheretype synonym ‘Op’ should have 2 arguments, but has been giv
假设一个谓词是一个函数=>布尔值,我想为谓词实现一个Cats的"Contravariant Functor“类型类的实例。我还有一个隐式类PredicateOps,它定义了谓词的并集和交集运算符。我已经能够使用类型别名让实例工作: type Predicate[A] = A => Boolean
implicit val predicateContra = new Contravariant[下面这两个想法都给了我一个编译器错误: implicit val predicateContra = new Contravariant