-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Utilities using ErrorOr datatype -- -- Builds on the error type defined in the error-or package @package error-or-utils @version 0.1.1 -- | A few utility functions with improved error reporting. module Data.ErrorOr.Utils -- | A read with better error messages. tryRead :: (Read a, Show a, MonadFail m) => String -> m a -- | Overloaded lookup with good error messages. lookup :: (OverloadedLookup t k v, Show k, Show t, MonadFail m, Applicative m) => k -> t -> m v -- | This is a version of lookup for where there is no Show instance -- for the collection. lookupIn :: (OverloadedLookup t k v, Show k, MonadFail m, Applicative m) => Text -> k -> t -> m v -- | A class used to implement lookup and lookupIn. class OverloadedLookup t k v | t -> k, t -> v overloadedLookup :: OverloadedLookup t k v => k -> t -> Maybe v instance GHC.Classes.Eq k => Data.ErrorOr.Utils.OverloadedLookup [(k, v)] k v instance GHC.Classes.Ord k => Data.ErrorOr.Utils.OverloadedLookup (Data.Map.Internal.Map k v) k v -- | Utilities for data validation module Data.ErrorOr.Validation (>!) :: (Ord a, Show a) => a -> a -> ErrorOr () infix 4 >! (>=!) :: (Ord a, Show a) => a -> a -> ErrorOr () infix 4 >=! ( a -> a -> ErrorOr () infix 4 a -> a -> ErrorOr () infix 4 <=! (=!) :: (Eq a, Show a) => a -> a -> ErrorOr () infix 4 =! (/=!) :: (Eq a, Show a) => a -> a -> ErrorOr () infix 4 /=! ensure :: Text -> Bool -> ErrorOr () ensureIsNothing :: Show a => Maybe a -> ErrorOr () ensureIsJust :: Maybe a -> ErrorOr () -- | Checks the difference of the numbers is less than ratio times the -- average of the two numbers. approxEqual :: (RealFrac a, Show a) => Double -> a -> a -> ErrorOr () -- | It annotates a failure with the element's show result. ensureAll :: Show a => (a -> ErrorOr ()) -> [a] -> ErrorOr ()