-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Straightforward validation monad. Convenient solution for validating web forms and APIs. -- -- Straightforward validation monad. Convenient solution for validating -- web forms and APIs. @package validationt @version 0.2.0.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_aian v_aiao k_aooQ v_aooR. Iso (MonoidMap k_aooQ v_aooR) (MonoidMap k_aian v_aiao) (Map k_aooQ v_aooR) (Map k_aian v_aiao) -- | 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.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 (Test.QuickCheck.Arbitrary.Arbitrary v, Test.QuickCheck.Arbitrary.Arbitrary k, GHC.Classes.Ord k) => Test.QuickCheck.Arbitrary.Arbitrary (Control.Monad.Validation.MonoidMap k v) instance (GHC.Show.Show v, GHC.Show.Show k) => GHC.Show.Show (Control.Monad.Validation.MonoidMap k v) instance (GHC.Classes.Ord v, GHC.Classes.Ord k) => GHC.Classes.Ord (Control.Monad.Validation.MonoidMap k v) instance (GHC.Classes.Eq v, GHC.Classes.Eq k) => 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)