module Fresnel.OptionalFold.Internal ( IsOptionalFold ) where import Data.Functor.Contravariant import Data.Profunctor import Fresnel.Getter.Internal (IsGetter) import Fresnel.Optional.Internal (IsOptional) import Fresnel.Profunctor.OptionalStar (OptionalStar) class (IsOptional p, IsGetter p) => IsOptionalFold p instance Monoid r => IsOptionalFold (Forget r) instance (Applicative f, Traversable f, Contravariant f) => IsOptionalFold (Star f) instance (Traversable f, Contravariant f) => IsOptionalFold (OptionalStar f)