`w D      !"#$%&'()*+,-./0123456789:;<=>?@ABCSafe+0The = type represents values with two non-exclusive possibilities.This can be useful to represent combinations of two values, where the combination is defined if either input is. Algebraically, the type  These A B represents  (A + B + AB)E, which doesn't factor easily into sums and products--a type like Either A (B, Maybe A)" is unclear and awkward to use." has straightforward instances of D, EM, &c., and behaves like a hybrid error/writer monad, as would be expected.Case analysis for the  type..Takes two default values and produces a tuple.%Coalesce with the provided operation.7BiMap and coalesce results with the provided operation.A  Traversal of the first half of a , suitable for use with  Control.Lens. A  Traversal of the second half of a , suitable for use with  Control.Lens. A Prism selecting the  constructor. A Prism selecting the  constructor. A Prism selecting the  constructor.  names are ridiculous!   = preview    = preview    = preview    = F .    = F .   = F . G map.  = over   = over   Select all  constructors from a list. Select all  constructors from a list. Select all  constructors from a list.?Select each constructor and partition them into separate lists.) H IJKLMNOPQRSTUV  & H IJKLMNOPQRSTUVNoneKBifoldable bifunctors supporting traversal through an alignable functor.Minimal definition:  bicrosswalk or  bisequenceL.Laws: `bicrosswalk (const empty) (const empty) = const empty bicrosswalk f g = bisequenceL . bimap f g GFoldable functors supporting traversal through an alignable functor.Minimal definition:  crosswalk or  sequenceL.Laws: Ccrosswalk (const nil) = const nil crosswalk f = sequenceL . fmap f .Alignable functors supporting an "inverse" to $6: splitting a union shape into its component parts.Minimal definition: nothing; a default definition is provided, but it may not have the desired definition for all functors. See the source for more information.Laws: dunalign nil = (nil, nil) unalign (This <$> x) = (Just <$> x, Nothing <$ x) unalign (That <$> y) = (Nothing <$ y, Just <$> y) unalign (join These <$> x) = (Just <$> x, Just <$> x) unalign ((x `These`) <$> y) = (Just x <$ y, Just <$> y) unalign ((`These` y) <$> x) = (Just <$> x, Just y <$ x) "RFunctors supporting a zip operation that takes the union of non-uniform shapes.+If your functor is actually a functor from  Kleisli Maybe to Hask (so it supports +maybeMap :: (a -> Maybe b) -> f a -> f b ), then an Align\ instance is making your functor lax monoidal w.r.t. the cartesian monoidal structure on  Kleisli Maybe , because These+ is the cartesian product in that category :(a -> Maybe (These b c) ~ (a -> Maybe b, a -> Maybe c))%. This insight is due to rwbarton.Minimal definition: nil and either align or  alignWith.Laws: (`align` nil) = fmap This (nil `align`) = fmap That join align = fmap (join These) align (f <$> x) (g <$> y) = bimap f g <$> align x y alignWith f a b = f <$> align a b #An empty strucutre. $ ing with #Y will produce a structure with the same shape and elements as the other input, modulo  or .$ Analogous to WK, combines two structures by taking the union of their shapes and using  to hold the elements.% Analogous to Xt, combines two structures by taking the union of their shapes and combining the elements with the given function.'&Align two structures and combine with Y.(Align two structures as in W, but filling in blanks with Z.)Align two structures as in X, but filling in blanks with Z.* Left-padded X.+ Left-padded W., Right-padded X.- Right-padded W.. !"#$%[&'()*+,-\]^_`abcdefghijklmnopqrst !"#$%&'()*+,-"#$%'()+*-,& !& !"#$%[&'()*+,-\]^_`abcdefghijklmnopqrstSafe357 .The . monad transformer.The u5 function produces a computation with no output, and v# combines multiple outputs with Y.13A chronicle monad parameterized by the output type c.The u5 function produces a computation with no output, and v# combines multiple outputs with Y.44 c& is an action that records the output c.Equivalent to w for the Writer monad.55 c& is an action that records the output c and returns a x value.QThis is a convenience function for reporting non-fatal errors in one branch a casex, or similar scenarios when there is no meaningful result but a placeholder of sorts is needed in order to continue.66 c, is an action that ends with a final output c.Equivalent to y for the z monad.77 m' is an action that executes the action m2, returning either its record if it ended with 6O, or its final value otherwise, with any record added to the current record. Similar to { in the z monad, but with a notion of non-fatal errors (which are accumulated) vs. fatal errors (which are caught without accumulating).88 x m' is an action that executes the action m6 and discards any record it had. The default value x will be used if m ended via 6.99 m' is an action that executes the action m~ and keeps its value only if it had no record. Otherwise, the value (if any) will be discarded and only the record kept.@This can be seen as converting non-fatal errors into fatal ones.:: f m' is an action that executes the action m and applies the function f3 to its output, leaving the return value unchanged.Equivalent to | for the Writer monad../0123456789:}~ ./0123456789: 123./0456789:./0123456789:}~Safe3579<< c& is an action that records the output c.Equivalent to  for the  monad.== c& is an action that records the output c and returns a x value.QThis is a convenience function for reporting non-fatal errors in one branch a casex, or similar scenarios when there is no meaningful result but a placeholder of sorts is needed in order to continue.>> c, is an action that ends with a final record c.Equivalent to  for the z monad.?? m' is an action that executes the action m2, returning either its record if it ended with >O, or its final value otherwise, with any record added to the current record. Similar to  in the z monad, but with a notion of non-fatal errors (which are accumulated) vs. fatal errors (which are caught without accumulating).@@ x m' is an action that executes the action m6 and discards any record it had. The default value x will be used if m ended via >.AA m' is an action that executes the action m~ and keeps its value only if it had no record. Otherwise, the value (if any) will be discarded and only the record kept.@This can be seen as converting non-fatal errors into fatal ones.BB f m' is an action that executes the action m and applies the function f3 to its output, leaving the return value unchanged.Equivalent to  for the  monad.CC m( lifts a plain 'These c a' value into a ; instance.;<=>?@ABC ./03;<=>?@ABC ;<=>?@ABC./03;<=>?@ABCSafe@vuEDY./013;<=>?@ABC;<=>?@ABC13./0      !"#$%&'()*+,-./01233456789:;<=>?89:;<=>6@AB@AC@DE@FGHIJKLMNOPQRSTUV@WX@WY@AZ@A[\]^_`abcdefghijklmnopqrstu@Av@Awxyz{|}x~x~xyz@A@A@A@@A@@@@@@@@@@@@@@@@@@@@@@@A@A@A@A@A@A@A@A@A@A@A@A@A@Athese_EVcAiRU79q4GetRYpuHCkU Data.These Data.AlignControl.Monad.Trans.ChronicleControl.Monad.Chronicle.ClassControl.Monad.ChronicleTheseThisThatthese fromThese mergeThesemergeTheseWithherethere_This_That_ThesejustThisjustThat justTheseisThisisThatisThesemapThesemapThismapThatcatThiscatThatcatThesepartitionThese Bicrosswalk bicrosswalk bisequenceL Crosswalk crosswalk sequenceLUnalignunalignAlignnilalign alignWithalignVectorWithmalignpadZip padZipWith lpadZipWithlpadZip rpadZipWithrpadZip ChronicleT runChronicleT Chronicle chronicle runChronicledictatediscloseconfessmementoabsolvecondemnretconMonadChroniclebaseGHC.BaseFunctorMonad Data.MaybeisJustData.Bifunctor Bifunctorprism$fHashableThese $fMonadThese $fBindThese$fApplicativeThese $fApplyThese$fBitraversable1These$fBitraversableThese$fBifoldable1These$fBifoldableThese$fBifunctorThese$fTraversableThese$fFoldableThese$fFunctorThese$fSemigroupTheseGHC.ListzipzipWithmappendNothingoopscrosswalkVector$fBicrosswalkThese$fBicrosswalkEither$fCrosswalkVector$fCrosswalkThese$fCrosswalkSeq $fCrosswalk[]$fCrosswalkMaybe$fCrosswalkIdentity$fUnalignStream$fUnalignProduct$fUnalignZipList $fUnalign[]$fUnalignMaybe$fAlignHashMap $fAlignVector $fAlignBundle $fAlignStream$fAlignProduct $fAlignIntMap $fAlignMap $fAlignSeq$fAlignZipList $fAlign[] $fAlignMaybereturn>>=mtl_Aue4leSeVkpKLsfHIV51E8Control.Monad.Writer.Classtelldatad_2NEHMn5C0267U2Fi2PEcxAData.Default.ClassDefaultControl.Monad.Error.Class throwErrortrans_GZTjP9K5WFq01xC9BAGQpFControl.Monad.Trans.ErrorError catchErrorcensor$fMonadFixChronicleT$fMonadWriterwChronicleT$fMonadStatesChronicleT$fMonadRWSrwsChronicleT$fMonadReaderrChronicleT$fMonadErroreChronicleT$fMonadPlusChronicleT$fAlternativeChronicleT$fMonadIOChronicleT$fMonadTransChronicleT$fMonadChronicleT$fBindChronicleT$fApplicativeChronicleT$fApplyChronicleT$fFunctorChronicleTControl.Monad.Trans.Writer.LazyWriter$fMonadChroniclecRWST$fMonadChroniclecRWST0$fMonadChroniclecWriterT$fMonadChroniclecWriterT0$fMonadChroniclecStateT$fMonadChroniclecStateT0$fMonadChroniclecReaderT$fMonadChroniclecExceptT$fMonadChroniclecErrorT$fMonadChroniclecMaybeT$fMonadChroniclecIdentityT$fMonadChroniclecChronicleT$fMonadChroniclecThesefail>>fmap Control.Monadguardjoinmfilter<$!>unless replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMforever<=<>=>filterMData.TraversableforMsequencemapM Data.Foldablemsum sequence_forM_mapM_ Data.FunctorvoidapliftM5liftM4liftM3liftM2liftMwhen=<<mconcatmemptyMonoidmplusmzero MonadPlusControl.Monad.Trans.Class MonadTransliftControl.Monad.IO.ClassMonadIOliftIO