-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Data type like Either but with accumulating error type -- -- Please see the Accuerr Haddock documentation for more -- information. @package accuerr @version 0.2.0.2 -- | Provides Accuerr, a type similar to Either but where the -- Applicative instance accumulates error values. This module is -- based on work in the validation package, which is available -- at -- -- https://hackage.haskell.org/package/validation -- -- The main differences between the validation package and this -- one: -- --
-- >>> import Text.Read
--
-- >>> :{
-- let readInt x = case readMaybe x of
-- Nothing -> AccFailure [x]
-- Just a -> AccSuccess a
-- where _types = a :: Int
-- :}
--
--
-- -- >>> (+) <$> readInt "3" <*> readInt "4" -- AccSuccess 7 -- -- >>> (+) <$> readInt "x3" <*> readInt "4" -- AccFailure ["x3"] -- -- >>> (+) <$> readInt "x3" <*> readInt "x4" -- AccFailure ["x3","x4"] -- -- >>> (,,) <$> readInt "3" <*> readInt "4" <*> readInt "x5" -- AccFailure ["x5"] -- -- >>> sequenceA [AccSuccess 3, AccSuccess 4] -- AccSuccess [3,4] -- -- >>> sequenceA [AccSuccess 3, AccSuccess 4, AccFailure ['c'], AccFailure ['a']] -- AccFailure "ca" --data Accuerr e a AccFailure :: e -> Accuerr e a AccSuccess :: a -> Accuerr e a _AccSuccess :: forall e_a7cj a_a7ck a_adHz. Prism (Accuerr e_a7cj a_adHz) (Accuerr e_a7cj a_a7ck) a_adHz a_a7ck _AccFailure :: forall e_a7cj a_a7ck e_adHu. Prism (Accuerr e_adHu a_a7ck) (Accuerr e_a7cj a_a7ck) e_adHu e_a7cj -- | Case analysis for the Accuerr type. Like either. accuerr :: (a -> c) -> (b -> c) -> Accuerr a b -> c accuerrToEither :: Accuerr e a -> Either e a eitherToAccuerr :: Either e a -> Accuerr e a isoAccuerrEither :: Iso' (Accuerr e a) (Either e a) isoEitherAccuerr :: Iso' (Either e a) (Accuerr e a) instance Data.Semigroup.Semigroup e => GHC.Base.Applicative (Accuerr.Accuerr e) instance Data.Bifunctor.Bifunctor Accuerr.Accuerr instance Data.Bifoldable.Bifoldable Accuerr.Accuerr instance Data.Bitraversable.Bitraversable Accuerr.Accuerr instance Control.Lens.Iso.Swapped Accuerr.Accuerr instance Data.Traversable.Traversable (Accuerr.Accuerr e) instance Data.Foldable.Foldable (Accuerr.Accuerr e) instance GHC.Base.Functor (Accuerr.Accuerr e) instance (GHC.Show.Show e, GHC.Show.Show a) => GHC.Show.Show (Accuerr.Accuerr e a) instance (GHC.Classes.Ord e, GHC.Classes.Ord a) => GHC.Classes.Ord (Accuerr.Accuerr e a) instance (GHC.Classes.Eq e, GHC.Classes.Eq a) => GHC.Classes.Eq (Accuerr.Accuerr e a)