-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Straightforward validation monad.
--
-- Convenient solution for validating web forms and APIs.
@package validationt
@version 0.2.1.0
module Control.Monad.Validation
-- | Collects all throwed "warnings" throwed through StateT and "errors"
-- throwed through ExceptT to single value using Monoid FIXME: give more
-- instances like HReaderT and MonadBaseControl/MonadMask
newtype ValidationT e m a
ValidationT :: ExceptT e (StateT e m) a -> ValidationT e m a
[unValidationT] :: ValidationT e m a -> ExceptT e (StateT e m) a
-- | Map with Monoid instance which mappend its values
newtype MonoidMap k v
MonoidMap :: (Map k v) -> MonoidMap k v
_MonoidMap :: forall k_abHs v_abHt k_alTR v_alTS. Iso (MonoidMap k_alTR v_alTS) (MonoidMap k_abHs v_abHt) (Map k_alTR v_alTS) (Map k_abHs v_abHt)
mmAppend :: (Ord k, Semigroup v) => MonoidMap k v -> MonoidMap k v -> MonoidMap k v
-- | Convenient for vZoom as first artument. Will prevent generation
-- of map with mempty values
mmSingleton :: (Eq v, Monoid v, Ord k) => k -> v -> MonoidMap k v
-- | Set given value to mempty
setMempty :: (Monoid s) => ASetter' s a -> a -> s
memptyWrap :: (Eq a, Monoid a) => b -> (a -> b) -> a -> b
-- | If given container is not mempty, then use given function to
-- append all its elements and return Just result
neConcat :: (Foldable f, Eq (f a), Monoid a, Monoid (f a)) => (a -> a -> a) -> f a -> Maybe a
textErrors :: [Text] -> Maybe Text
-- | Returns mempty instead of error if no warnings was occured. So,
-- your error should have Eq instance to detect that any error was
-- occured. Returns Nothing for second element of tuple if compuration
-- was interruped by vError
runValidationT :: (Monoid e, Monad m) => ValidationT e m a -> m (e, Maybe a)
runValidationTEither :: (Monoid e, Eq e, Monad m) => ValidationT e m a -> m (Either e a)
handleValidationT :: (Monoid e, Monad m, Eq e) => (e -> m a) -> ValidationT e m a -> m a
-- | Stops further execution of validation
vError :: (Monad m) => e -> ValidationT e m a
-- | Does not stop further execution, append warning to
vWarning :: (Monad m, Monoid e) => e -> ValidationT e m ()
vErrorL :: (Monad m, Monoid e) => ASetter' e a -> a -> ValidationT e m x
vWarningL :: (Monad m, Monoid e) => ASetter' e a -> a -> ValidationT e m ()
vZoom :: (Monad m, Monoid a, Monoid b) => (a -> b) -> ValidationT a m x -> ValidationT b m x
vZoomL :: (Monad m, Monoid a, Monoid b) => ASetter' b a -> ValidationT a m x -> ValidationT b m x
instance GHC.Classes.Ord k => Control.Lens.At.Ixed (Control.Monad.Validation.MonoidMap k v)
instance GHC.Classes.Ord k => Control.Lens.At.At (Control.Monad.Validation.MonoidMap k v)
instance (GHC.Classes.Ord k, GHC.Base.Semigroup v) => GHC.Base.Semigroup (Control.Monad.Validation.MonoidMap k v)
instance (GHC.Classes.Ord k, GHC.Base.Monoid v) => GHC.Base.Monoid (Control.Monad.Validation.MonoidMap k v)
instance (Data.Aeson.Types.ToJSON.ToJSON k, Data.Aeson.Types.ToJSON.ToJSON v) => Data.Aeson.Types.ToJSON.ToJSON (Control.Monad.Validation.MonoidMap k v)
instance (GHC.Classes.Ord k, Data.Aeson.Types.FromJSON.FromJSON k, Data.Aeson.Types.FromJSON.FromJSON v) => Data.Aeson.Types.FromJSON.FromJSON (Control.Monad.Validation.MonoidMap k v)
instance (GHC.Classes.Ord k, Test.QuickCheck.Arbitrary.Arbitrary k, Test.QuickCheck.Arbitrary.Arbitrary v) => Test.QuickCheck.Arbitrary.Arbitrary (Control.Monad.Validation.MonoidMap k v)
instance (GHC.Show.Show k, GHC.Show.Show v) => GHC.Show.Show (Control.Monad.Validation.MonoidMap k v)
instance (GHC.Classes.Ord k, GHC.Classes.Ord v) => GHC.Classes.Ord (Control.Monad.Validation.MonoidMap k v)
instance (GHC.Classes.Eq k, GHC.Classes.Eq v) => GHC.Classes.Eq (Control.Monad.Validation.MonoidMap k v)
instance Control.Monad.Base.MonadBase b m => Control.Monad.Base.MonadBase b (Control.Monad.Validation.ValidationT e m)
instance Control.Monad.Catch.MonadCatch m => Control.Monad.Catch.MonadCatch (Control.Monad.Validation.ValidationT e m)
instance Control.Monad.Catch.MonadThrow m => Control.Monad.Catch.MonadThrow (Control.Monad.Validation.ValidationT e m)
instance GHC.Base.Monad m => GHC.Base.Monad (Control.Monad.Validation.ValidationT e m)
instance GHC.Base.Monad m => GHC.Base.Applicative (Control.Monad.Validation.ValidationT e m)
instance GHC.Base.Functor m => GHC.Base.Functor (Control.Monad.Validation.ValidationT e m)
instance Control.Monad.Trans.Class.MonadTrans (Control.Monad.Validation.ValidationT e)
instance Control.Monad.Trans.Lift.Local.LiftLocal (Control.Monad.Validation.ValidationT e)