úΈÂ/      !"#$%&'()*+,-.SafeSafe$the class of containers that form a /% regardless of the type they containMthe class of containers that can be combined regardless of type they contain,the class of containers with a "nil" element  None2345:the variation type contains _nominal(: a nominal value that will always exist _variationsT: alternative values which are held inside a container of type fit is strict in both arguments.the 0 instance uses the  instance of f to define pure pure x = Variation x empty1and the 1 and  instances of f to define 2 yVariation f fs <*> Variation x xs = Variation (f x) ((fs <.> xs) `append1` (f <$> xs) `append1` (($ x) <$> fs))the 3 instance uses the 1 instance of f (4#) to collapse collections of type f (f a) ájoinV :: (Bind f, Monoid1 f) => Variation f (Variation f a) -> Variation f a joinV (Variation (Variation nn nv) v) = let vv = _variations <$> v vn = _nominal <$> v in Variation nn $ join vv `append1` vn `append1` nvother useful instances: Finstance Append1 f => Semigroup (Variation f a) where (<>) = append1 rinstance (Monoid a, Monoid1 f) => Monoid (Variation f a) where mempty = Variation mempty empty1 mappend = (<>) !5"#$%&'()* ! !  !5"#$%&'()*6       !"#$%&'()*+,-./0123423567823923:67;<=(variation-0.1.0.0-AcAz3Z65Zva6uLyTMCDVuCData.Variation.Instances Data.Monoid1Data.Variation $fShow1Map $fShow2MapMonoid1Append1append1Unit1empty1$fMonoid1WrappedMonad$fAppend1WrappedMonad$fUnit1WrappedMonad $fMonoid1Last$fMonoid1First$fMonoid1Const $fMonoid1Map$fMonoid1IntMap $fMonoid1[] $fAppend1Last$fAppend1First$fAppend1Const $fAppend1Map$fAppend1IntMap $fAppend1[] $fUnit1Last $fUnit1First $fUnit1Const $fUnit1Map $fUnit1IntMap $fUnit1[] Variation_nominal _variationsnominal variations$fShowVariation$fShow1Variation$fMonoidVariation$fSemigroupVariation$fAppend1Variation$fMonadVariation$fApplicativeVariation$fSerializeVariation$fNFDataVariation$fGenericVariation$fFunctorVariation$fFoldableVariation$fTraversableVariationbaseGHC.BaseMonoid Applicative(semigroupoids-5.2-4GIAkhG0auJ5r0l5v9KcpaData.Functor.Bind.ClassBind<*>MonadjoinjoinV