úμJV      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUThe monoid of V under xor.(c) Donnacha Oisín Kidney, 2018MITmail@doisinkidney.com experimentalGHCNone16K”A monoid over XOR.None 13456>?FKT†The  W. It is left-adjunct to .The Difference Monoid.)Lift a monoid into the difference monoid. diff (Sum 1)%Sum {getSum = 1} :-: Sum {getSum = 0}The inverse of .  X  = Y1A group homomorphism given a monoid homomorphism.@Given a "normalizing" function, try simplify the representation.`For instance, one such normalizing function may be to take the numeric difference of two types:;let sumNorm x y = if x >= y then (x - y, 0) else (0, y - x)Xnormalize sumNorm ((foldMap (diff.Sum) [1..10]) <> (invert (foldMap (diff.Sum) [1..5])))&Sum {getSum = 40} :-: Sum {getSum = 0}6Interpret the difference using a subtraction function. &876543210/.-,+*)('&%$#"! ;:96?The Difference Monoid, to add subtraction to arbitrary monoids.(c) Donnacha Oisín Kidney, 2018MITmail@doisinkidney.com experimentalGHCNoneà  The  Z and Comonad.(c) Donnacha Oisín Kidney, 2018MITmail@doisinkidney.com experimentalGHCNoneËSafe#[\]^_`abc       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdecdfcdghijklmnop0difference-monoid-0.1.0.0-6GZ7n3SsUmUHrUzugzcGeoData.Monoid.DiffData.Monoid.OddControl.Monad.ParityData.Monoid.Diff.Internal Data.MonoidDiffPaths_difference_monoid%groups-0.4.1.0-6RDV104XdsQ2y6YSeGIbJR Data.GrouppowinvertGroupOddgetOdd $fGroupOdd $fMonoidOdd$fSemigroupOdd$fEqOdd$fOrdOdd $fShowOdd $fBoundedOdd $fEnumOdd $fDataOdd $fReadOdd$fIxOdd $fGenericOdd$fFiniteBitsOdd $fBitsOdd $fStorableOdd $fNFDataOddParity runParity:-:diffretractfoldDiff normalizerunDiff $fExtendDiff $fRead1Diff $fShow1Diff $fBoundedDiff$fComonadApplyDiff $fComonadDiff $fApplyDiff$fTraversable1Diff$fFoldable1Diff$fRepresentableDiff$fDistributiveDiff $fNFDataDiff$fMonadZipDiff$fMonadFixDiff $fOrdDiff$fEqDiff $fGroupDiff $fMonoidDiff$fSemigroupDiff $fBindDiff $fMonadDiff$fApplicativeDiff$fTraversableDiff$fFoldableDiff $fFunctorDiff$fAdjunctionParityDiff$fMonadFixParity$fTraversable1Parity $fShowDiff $fReadDiff $fDataDiff $fGenericDiff$fGeneric1Diff$fFunctorParity$fFoldableParity$fTraversableParity$fFoldable1Parity$fApplicativeParity $fMonadParity $fApplyParity $fBindParity$fExtendParity$fComonadParity$fComonadApplyParity $fEqParity $fOrdParity $fShowParity $fReadParity$fBoundedParity $fIxParity$fSemigroupParity$fMonoidParity$fNFDataParity$fComonadEnvParityghc-prim GHC.TypesBool$comonad-5.0.3-IUy9MfvMWmVALWLTZ8cwfgControl.ComonadComonadbaseGHC.Base.idMonadversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName