Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Synopsis
- data Refined p a
- refine :: forall p a. Refine p a => a -> Either (RefineFailure String) (Refined p a)
- unrefine :: Refined p a -> a
- data Refined1 p f a
- refine1 :: forall p f a. Refine1 p f => f a -> Either (RefineFailure String) (Refined1 p f a)
- unrefine1 :: Refined1 p f a -> f a
- data RefineFailure a
- prettyRefineFailure :: (Semigroup a, IsString a) => RefineFailure a -> a
Refined
a
refined with predicate p
.
refine :: forall p a. Refine p a => a -> Either (RefineFailure String) (Refined p a) Source #
Refine a
with predicate p
.
Refined1
f a
refined with predicate p
.
refine1 :: forall p f a. Refine1 p f => f a -> Either (RefineFailure String) (Refined1 p f a) Source #
Refine f a
with functor predicate p
.
Errors
data RefineFailure a Source #
Predicate validation failure.
Polymorphic over the message type because I want to use Text
, but want it
doesn't have the convenient Show
internals that String
does.
Instances
Show a => Show (RefineFailure a) Source # | |
Defined in Rerefined.Predicate showsPrec :: Int -> RefineFailure a -> ShowS # show :: RefineFailure a -> String # showList :: [RefineFailure a] -> ShowS # |
prettyRefineFailure :: (Semigroup a, IsString a) => RefineFailure a -> a Source #