fresnel-0.1.0.0: src/Fresnel/Fold1/Internal.hs
module Fresnel.Fold1.Internal
( IsFold1
) where
import Data.Functor.Apply
import Data.Functor.Contravariant
import Data.Profunctor (Forget, Star)
import Fresnel.Getter.Internal (IsGetter)
import Fresnel.Profunctor.OptionalStar (OptionalStar)
import Fresnel.Profunctor.Star1 (Star1)
import Fresnel.Traversal1.Internal (IsTraversal1)
class (IsGetter p, IsTraversal1 p) => IsFold1 p
instance Semigroup r => IsFold1 (Forget r)
instance (Contravariant f, Applicative f, Traversable f) => IsFold1 (Star f)
instance (Contravariant f, Apply f, Traversable f) => IsFold1 (Star1 f)
instance (Contravariant f, Apply f, Traversable f) => IsFold1 (OptionalStar f)