úÎ}¡NoneAny *->*->*: type parametric in both arguments permits an instance of   Invariant2. -Instances should satisfy the following laws:  invmap2 id id id id = id 1 invmap2 f2 f2' g2 g2' . invmap2 f1 f1' g1 g1' = 7 invmap2 (f2 . f1) (f1' . f2') (g2 . g1) (g1' . g2') Any *->*8 type parametric in the argument permits an instance of   Invariant. -Instances should satisfy the following laws:  invmap id id = id > invmap f2 f2' . invmap f1 f1' = invmap (f2 . f1) (f1' . f2')  from the  contravariant package  from the  contravariant package  from the  contravariant package  from the  contravariant package  from the  contravariant package  from the  contravariant package  from the  contravariant package  from the  contravariant package Control.Applicative Control.Applicative Control.Applicative Control.Applicative Control.Applicative Control.Applicative$  !"#"  !"#$      !"#$%&invariant-0.1.0Data.Functor.Invariant Invariant2invmap2 Invariantinvmap$fInvariantComposeFC$fInvariantComposeCF$fInvariantCompose$fInvariant2Op $fInvariantOp$fInvariantEquivalence$fInvariantComparison$fInvariantPredicate$fInvariant2WrappedArrow$fInvariant2Const$fInvariantWrappedArrow$fInvariantWrappedMonad$fInvariantZipList$fInvariantConst$fInvariant2(,,,,)$fInvariant2(,,,)$fInvariant2(,,)$fInvariant2(,)$fInvariant2Either$fInvariant2(->)$fInvariant(,,,,)$fInvariant(,,,)$fInvariant(,,)$fInvariant(,)$fInvariantEither$fInvariant(->)$fInvariantReadPrec$fInvariantReadP $fInvariantST $fInvariantIO $fInvariant[]$fInvariantMaybe