Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Rerefined.Refined
Description
Refined
a
refined with predicate p
.
Constructors
Refined a |
Refined1
newtype Refined1 p f a Source #
f a
refined with predicate p
.
We may derive legal Functor
, Traversable
instances for this as
Refine1
guarantees that the predicate only applies to
the functor structure. That is, you _may_ alter a Refined1
without
re-asserting its predicate, provided your changes are made without altering
the structure/shape of f
(e.g. fmap
, traverse
).
Constructors
Refined1 (f a) |
Instances
Lift (f a) => Lift (Refined1 p f a :: Type) Source # | |
Foldable f => Foldable (Refined1 p f) Source # | |
Defined in Rerefined.Refined Methods fold :: Monoid m => Refined1 p f m -> m # foldMap :: Monoid m => (a -> m) -> Refined1 p f a -> m # foldMap' :: Monoid m => (a -> m) -> Refined1 p f a -> m # foldr :: (a -> b -> b) -> b -> Refined1 p f a -> b # foldr' :: (a -> b -> b) -> b -> Refined1 p f a -> b # foldl :: (b -> a -> b) -> b -> Refined1 p f a -> b # foldl' :: (b -> a -> b) -> b -> Refined1 p f a -> b # foldr1 :: (a -> a -> a) -> Refined1 p f a -> a # foldl1 :: (a -> a -> a) -> Refined1 p f a -> a # toList :: Refined1 p f a -> [a] # null :: Refined1 p f a -> Bool # length :: Refined1 p f a -> Int # elem :: Eq a => a -> Refined1 p f a -> Bool # maximum :: Ord a => Refined1 p f a -> a # minimum :: Ord a => Refined1 p f a -> a # | |
Traversable f => Traversable (Refined1 p f) Source # | |
Defined in Rerefined.Refined Methods traverse :: Applicative f0 => (a -> f0 b) -> Refined1 p f a -> f0 (Refined1 p f b) # sequenceA :: Applicative f0 => Refined1 p f (f0 a) -> f0 (Refined1 p f a) # mapM :: Monad m => (a -> m b) -> Refined1 p f a -> m (Refined1 p f b) # sequence :: Monad m => Refined1 p f (m a) -> m (Refined1 p f a) # | |
Functor f => Functor (Refined1 p f) Source # | |
Show (f a) => Show (Refined1 p f a) Source # | |