| Copyright | (c) Justin Le 2018 |
|---|---|
| License | BSD-3 |
| Maintainer | justin@jle.im |
| Stability | unstable |
| Portability | portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.Ord.OneLiner
Description
Derived methods for Eq and Ord, using Generics.OneLiner and
GHC.Generics.
Can be used for any types (deriving Generic) where every field is an
instance of Eq (or Ord).
Also includes a newtype wrapper that imbues any such data type with
instant Eq and Ord instances, which can one day be used with
DerivingVia syntax to derive instances automatically.
Synopsis
- newtype GOrd a = GOrd {
- getGOrd :: a
- gEquals :: forall a. (ADT a, Constraints a Eq) => a -> a -> Bool
- gNotEquals :: forall a. (ADT a, Constraints a Eq) => a -> a -> Bool
- gCompare :: forall a. (ADT a, Constraints a Ord) => a -> a -> Ordering
- gLTE :: forall a. (ADT a, Constraints a Ord) => a -> a -> Bool
- gLT :: forall a. (ADT a, Constraints a Ord) => a -> a -> Bool
- gGTE :: forall a. (ADT a, Constraints a Ord) => a -> a -> Bool
- gGT :: forall a. (ADT a, Constraints a Ord) => a -> a -> Bool
- gMax :: forall a. (ADT a, Constraints a Ord) => a -> a -> a
- gMin :: forall a. (ADT a, Constraints a Ord) => a -> a -> a
Newtype wrapper
If a is a data type whose fields are all instances of Eq, then
has a GOrd aEq instance.
If a is a data type whose fields are all instances of Ord, then
has a GOrd aOrd instance.
Will one day be able to be used with DerivingVia syntax, to derive instances automatically.
Instances
| Functor GOrd # | |
| Foldable GOrd # | |
Defined in Data.Ord.OneLiner Methods fold :: Monoid m => GOrd m -> m # foldMap :: Monoid m => (a -> m) -> GOrd a -> m # foldr :: (a -> b -> b) -> b -> GOrd a -> b # foldr' :: (a -> b -> b) -> b -> GOrd a -> b # foldl :: (b -> a -> b) -> b -> GOrd a -> b # foldl' :: (b -> a -> b) -> b -> GOrd a -> b # foldr1 :: (a -> a -> a) -> GOrd a -> a # foldl1 :: (a -> a -> a) -> GOrd a -> a # elem :: Eq a => a -> GOrd a -> Bool # maximum :: Ord a => GOrd a -> a # | |
| Traversable GOrd # | |
| (ADT a, Constraints a Eq) => Eq (GOrd a) # | |
| Data a => Data (GOrd a) # | |
Defined in Data.Ord.OneLiner Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> GOrd a -> c (GOrd a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (GOrd a) # toConstr :: GOrd a -> Constr # dataTypeOf :: GOrd a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (GOrd a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (GOrd a)) # gmapT :: (forall b. Data b => b -> b) -> GOrd a -> GOrd a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> GOrd a -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> GOrd a -> r # gmapQ :: (forall d. Data d => d -> u) -> GOrd a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> GOrd a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> GOrd a -> m (GOrd a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> GOrd a -> m (GOrd a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> GOrd a -> m (GOrd a) # | |
| (ADT a, Constraints a Eq, Constraints a Ord) => Ord (GOrd a) # | |
| Read a => Read (GOrd a) # | |
| Show a => Show (GOrd a) # | |
| Generic (GOrd a) # | |
| type Rep (GOrd a) # | |
Defined in Data.Ord.OneLiner | |
Generics-derived methods
Eq
gNotEquals :: forall a. (ADT a, Constraints a Eq) => a -> a -> Bool #
Ord
gMax :: forall a. (ADT a, Constraints a Ord) => a -> a -> a #