Safe Haskell | None |
---|---|
Language | GHC2021 |
Effects.Time
Description
Provides the MonadTime
class.
Since: 0.1
Synopsis
- class Monad m => MonadTime (m :: Type -> Type) where
- getSystemTime :: (HasCallStack, MonadTime m) => m LocalTime
- withTiming :: (HasCallStack, MonadTime m) => m a -> m (TimeSpec, a)
- withTiming_ :: (HasCallStack, MonadTime m) => m a -> m TimeSpec
- data TimeSpec = MkTimeSpec {}
- fromSeconds :: Double -> TimeSpec
- fromNanoSeconds :: Natural -> TimeSpec
- toSeconds :: TimeSpec -> Double
- toNanoSeconds :: TimeSpec -> Natural
- diffTimeSpec :: TimeSpec -> TimeSpec -> TimeSpec
- normalizeTimeSpec :: TimeSpec -> TimeSpec
- formatLocalTime :: LocalTime -> String
- formatZonedTime :: ZonedTime -> String
- parseLocalTime :: MonadFail f => String -> f LocalTime
- parseZonedTime :: MonadFail f => String -> f ZonedTime
- getSystemTimeString :: (HasCallStack, MonadTime m) => m String
- getSystemZonedTimeString :: (HasCallStack, MonadTime m) => m String
- data LocalTime = LocalTime {}
- data ZonedTime = ZonedTime {}
- class ASemigroup s where
- (.+.) :: s -> s -> s
- class ASemigroup m => AMonoid m where
- zero :: m
- class MSemigroup r => MSemiSpace m r | m -> r where
- (.*) :: m -> r -> m
- class (MGroup k, MSemiSpace v k) => MSpace v k | v -> k where
- (.%) :: v -> k -> v
- class (AMonoid m, MSemiSpace m r, Semiring r) => Semimodule m r | m -> r
- class (MSpace v k, Semifield k, Semimodule v k) => SemivectorSpace v k | v -> k
- class Normed s
- class LowerBounded a where
- lowerBound :: a
- class UpperBoundless a
Effect
class Monad m => MonadTime (m :: Type -> Type) where Source #
Time effect.
Since: 0.1
Methods
getSystemZonedTime :: m ZonedTime Source #
Returns the zoned system time.
Since: 0.1
getMonotonicTime :: m Double Source #
Return monotonic time in seconds, since some unspecified starting point.
Since: 0.1
getSystemTime :: (HasCallStack, MonadTime m) => m LocalTime Source #
Returns the local system time.
Since: 0.1
Timing
withTiming :: (HasCallStack, MonadTime m) => m a -> m (TimeSpec, a) Source #
Runs an action, returning the elapsed time.
Since: 0.1
withTiming_ :: (HasCallStack, MonadTime m) => m a -> m TimeSpec Source #
withTiming
but ignores the result value.
Since: 0.1
TimeSpec
Structure for holding time data. Eq
and Ord
are defined in terms of
an equivalence class e.g.
MkTimeSpec s n === MkTimeSpec 0 (s * 1_000_000_000 + n)
Since: 0.1
Constructors
MkTimeSpec | |
Instances
Creation
fromNanoSeconds :: Natural -> TimeSpec Source #
Elimination
toNanoSeconds :: TimeSpec -> Natural Source #
Operations
diffTimeSpec :: TimeSpec -> TimeSpec -> TimeSpec Source #
Returns the absolute difference of two TimeSpec
s.
Since: 0.1
normalizeTimeSpec :: TimeSpec -> TimeSpec Source #
Normalizes nanoseconds < 1 second.
Since: 0.1
Formatting
formatLocalTime :: LocalTime -> String Source #
Formats the LocalTime
to YYYY-MM-DD HH:MM:SS
.
Since: 0.1
formatZonedTime :: ZonedTime -> String Source #
Formats the ZonedTime
to YYYY-MM-DD HH:MM:SS Z
.
Since: 0.1
Parsing
parseLocalTime :: MonadFail f => String -> f LocalTime Source #
Parses the LocalTime
from YYYY-MM-DD HH:MM:SS
.
Since: 0.1
parseZonedTime :: MonadFail f => String -> f ZonedTime Source #
Parses the ZonedTime
from YYYY-MM-DD HH:MM:SS Z
.
Known Timezones
- UTC
- UT
- GMT
- EST
- EDT
- CST
- CDT
- MST
- MDT
- PST
- PDT
- +HHMM (e.g. +1300)
Since: 0.1
Misc
getSystemTimeString :: (HasCallStack, MonadTime m) => m String Source #
Retrieves the formatted LocalTime
.
Since: 0.1
getSystemZonedTimeString :: (HasCallStack, MonadTime m) => m String Source #
Retrieves the formatted ZonedTime
.
Since: 0.1
Reexports
Time
A simple day and time aggregate, where the day is of the specified parameter, and the time is a TimeOfDay. Conversion of this (as local civil time) to UTC depends on the time zone. Conversion of this (as local mean time) to UT1 depends on the longitude.
Constructors
LocalTime | |
Fields
|
Instances
Data LocalTime | |
Defined in Data.Time.LocalTime.Internal.LocalTime Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LocalTime -> c LocalTime # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c LocalTime # toConstr :: LocalTime -> Constr # dataTypeOf :: LocalTime -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c LocalTime) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c LocalTime) # gmapT :: (forall b. Data b => b -> b) -> LocalTime -> LocalTime # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LocalTime -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LocalTime -> r # gmapQ :: (forall d. Data d => d -> u) -> LocalTime -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> LocalTime -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> LocalTime -> m LocalTime # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LocalTime -> m LocalTime # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LocalTime -> m LocalTime # | |
Show LocalTime | |
NFData LocalTime | |
Defined in Data.Time.LocalTime.Internal.LocalTime | |
Eq LocalTime | |
Ord LocalTime | |
Defined in Data.Time.LocalTime.Internal.LocalTime | |
ISO8601 LocalTime |
|
Defined in Data.Time.Format.ISO8601 Methods |
A local time together with a time zone.
There is no Eq
instance for ZonedTime
.
If you want to compare local times, use zonedTimeToLocalTime
.
If you want to compare absolute times, use zonedTimeToUTC
.
Constructors
ZonedTime | |
Fields |
Instances
Data ZonedTime | |
Defined in Data.Time.LocalTime.Internal.ZonedTime Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ZonedTime -> c ZonedTime # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ZonedTime # toConstr :: ZonedTime -> Constr # dataTypeOf :: ZonedTime -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ZonedTime) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ZonedTime) # gmapT :: (forall b. Data b => b -> b) -> ZonedTime -> ZonedTime # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ZonedTime -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ZonedTime -> r # gmapQ :: (forall d. Data d => d -> u) -> ZonedTime -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ZonedTime -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ZonedTime -> m ZonedTime # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ZonedTime -> m ZonedTime # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ZonedTime -> m ZonedTime # | |
Show ZonedTime | For the time zone, this only shows the name, or offset if the name is empty. |
NFData ZonedTime | |
Defined in Data.Time.LocalTime.Internal.ZonedTime | |
ISO8601 ZonedTime |
|
Defined in Data.Time.Format.ISO8601 Methods |
Algebra
class ASemigroup s where Source #
Defines an additive semigroup.
Since: algebra-simple-0.1
Instances
ASemigroup Int16 | Since: algebra-simple-0.1 |
ASemigroup Int32 | Since: algebra-simple-0.1 |
ASemigroup Int64 | Since: algebra-simple-0.1 |
ASemigroup Int8 | Since: algebra-simple-0.1 |
ASemigroup Word16 | Since: algebra-simple-0.1 |
ASemigroup Word32 | Since: algebra-simple-0.1 |
ASemigroup Word64 | Since: algebra-simple-0.1 |
ASemigroup Word8 | Since: algebra-simple-0.1 |
ASemigroup TimeSpec Source # | Since: 0.1 |
ASemigroup Integer | Since: algebra-simple-0.1 |
ASemigroup Natural | Since: algebra-simple-0.1 |
ASemigroup Double | Since: algebra-simple-0.1 |
ASemigroup Float | Since: algebra-simple-0.1 |
ASemigroup Int | Since: algebra-simple-0.1 |
ASemigroup Word | Since: algebra-simple-0.1 |
RealFloat a => ASemigroup (Complex a) | Since: algebra-simple-0.1 |
ASemigroup (Ratio Integer) | Since: algebra-simple-0.1 |
ASemigroup (Ratio Natural) | Since: algebra-simple-0.1 |
ASemigroup a => ASemigroup (a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.ASemigroup | |
ASemigroup a => ASemigroup (a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.ASemigroup | |
ASemigroup a => ASemigroup (a, a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.ASemigroup | |
ASemigroup a => ASemigroup (a, a, a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.ASemigroup | |
ASemigroup a => ASemigroup (a, a, a, a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.ASemigroup | |
ASemigroup a => ASemigroup (a, a, a, a, a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.ASemigroup | |
ASemigroup a => ASemigroup (a, a, a, a, a, a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.ASemigroup | |
ASemigroup a => ASemigroup (a, a, a, a, a, a, a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.ASemigroup |
class ASemigroup m => AMonoid m where Source #
Defines a monoid over an additive semigroup.
Since: algebra-simple-0.1
Instances
AMonoid Int16 | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid Int32 | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid Int64 | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid Int8 | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid Word16 | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid Word32 | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid Word64 | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid Word8 | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid TimeSpec Source # | Since: 0.1 |
Defined in Effects.Time | |
AMonoid Integer | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid Natural | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid Double | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid Float | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid Int | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid Word | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
RealFloat a => AMonoid (Complex a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid (Ratio Integer) | Since: algebra-simple-0.1 |
AMonoid (Ratio Natural) | Since: algebra-simple-0.1 |
AMonoid a => AMonoid (a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid a => AMonoid (a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid a => AMonoid (a, a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid a => AMonoid (a, a, a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid a => AMonoid (a, a, a, a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid a => AMonoid (a, a, a, a, a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid a => AMonoid (a, a, a, a, a, a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid | |
AMonoid a => AMonoid (a, a, a, a, a, a, a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Additive.AMonoid |
class MSemigroup r => MSemiSpace m r | m -> r where Source #
Defines a "multiplicative semi space" over an MSemigroup
. This
generalizes the notion of a Semimodule
\(M\) over a Ring
\(R\) in that we assume no
additive structure on the space itself.
Since: algebra-simple-0.1
Instances
MSemiSpace TimeSpec Natural Source # | Since: 0.1 |
MSemigroup r => MSemiSpace (r, r) r | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.MSemiSpace | |
MSemigroup r => MSemiSpace (r, r, r) r | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.MSemiSpace | |
MSemigroup r => MSemiSpace (r, r, r, r) r | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.MSemiSpace | |
MSemigroup r => MSemiSpace (r, r, r, r, r) r | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.MSemiSpace | |
MSemigroup r => MSemiSpace (r, r, r, r, r, r) r | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.MSemiSpace | |
MSemigroup r => MSemiSpace (r, r, r, r, r, r, r) r | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.MSemiSpace | |
MSemigroup r => MSemiSpace (r, r, r, r, r, r, r, r) r | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.MSemiSpace | |
MSemigroup r => MSemiSpace (r, r, r, r, r, r, r, r, r) r | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.MSemiSpace |
class (MGroup k, MSemiSpace v k) => MSpace v k | v -> k where Source #
Defines a "multiplicative space" over an MGroup
. This generalizes
the notion of a Semivectorspace
\(V\) over a Semifield
\(K\) in that we
assume no additive structure on the space itself.
Since: algebra-simple-0.1
Instances
MSpace TimeSpec Natural Source # | Since: 0.1 |
MGroup k => MSpace (k, k) k | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.MSpace | |
MGroup k => MSpace (k, k, k) k | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.MSpace | |
MGroup k => MSpace (k, k, k, k) k | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.MSpace | |
MGroup k => MSpace (k, k, k, k, k) k | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.MSpace | |
MGroup k => MSpace (k, k, k, k, k, k) k | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.MSpace | |
MGroup k => MSpace (k, k, k, k, k, k, k) k | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.MSpace | |
MGroup k => MSpace (k, k, k, k, k, k, k, k) k | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.MSpace | |
MGroup k => MSpace (k, k, k, k, k, k, k, k, k) k | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.MSpace |
class (AMonoid m, MSemiSpace m r, Semiring r) => Semimodule m r | m -> r Source #
Defines a semimodule over a semiring. This generalizes the notion of
a Module
\(M\) over a Ring
\(R\) such that:
Since: algebra-simple-0.1
Instances
Semimodule TimeSpec Natural Source # | Since: 0.1 |
Defined in Effects.Time | |
Semiring r => Semimodule (r, r) r | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.Semimodule | |
Semiring r => Semimodule (r, r, r) r | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.Semimodule | |
Semiring r => Semimodule (r, r, r, r) r | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.Semimodule | |
Semiring r => Semimodule (r, r, r, r, r) r | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.Semimodule | |
Semiring r => Semimodule (r, r, r, r, r, r) r | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.Semimodule | |
Semiring r => Semimodule (r, r, r, r, r, r, r) r | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.Semimodule | |
Semiring r => Semimodule (r, r, r, r, r, r, r, r) r | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.Semimodule | |
Semiring r => Semimodule (r, r, r, r, r, r, r, r, r) r | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.Semimodule |
class (MSpace v k, Semifield k, Semimodule v k) => SemivectorSpace v k | v -> k Source #
Defines a semivector space over a semifield. This generalizes the notion
of a VectorSpace
\(V\) over a
Field
\(K\) such that:
Since: algebra-simple-0.1
Instances
SemivectorSpace TimeSpec Natural Source # | Since: 0.1 |
Defined in Effects.Time | |
Semifield k => SemivectorSpace (k, k) k | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.SemivectorSpace | |
Semifield k => SemivectorSpace (k, k, k) k | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.SemivectorSpace | |
Semifield k => SemivectorSpace (k, k, k, k) k | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.SemivectorSpace | |
Semifield k => SemivectorSpace (k, k, k, k, k) k | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.SemivectorSpace | |
Semifield k => SemivectorSpace (k, k, k, k, k, k) k | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.SemivectorSpace | |
Semifield k => SemivectorSpace (k, k, k, k, k, k, k) k | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.SemivectorSpace | |
Semifield k => SemivectorSpace (k, k, k, k, k, k, k, k) k | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.SemivectorSpace | |
Semifield k => SemivectorSpace (k, k, k, k, k, k, k, k, k) k | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Space.SemivectorSpace |
Defines a "norm" on a given structure. We have the following laws:
- Positive definiteness:
norm x > 0 for x /= 0, norm 0 = 0
. - Subadditivity:
norm (x + y) <= norm x + norm y
. - Inversion :
norm x = norm (-x)
.
Notice these laws require various algebraic assumptions, from a semigroup
up to a group structure. It is expected that types that implement
ASemigroup
,
AMonoid
, and
AGroup
will follow the respective laws.
We do not require any of these typeclasses as constraints as it is possible that we may want to abstract over "positive" types with a type that does not have an additive semigroup instance (consider multiplicative groups).
Since: algebra-simple-0.1
Minimal complete definition
Instances
Normed Int16 | Since: algebra-simple-0.1 |
Normed Int32 | Since: algebra-simple-0.1 |
Normed Int64 | Since: algebra-simple-0.1 |
Normed Int8 | Since: algebra-simple-0.1 |
Normed Word16 | Since: algebra-simple-0.1 |
Normed Word32 | Since: algebra-simple-0.1 |
Normed Word64 | Since: algebra-simple-0.1 |
Normed Word8 | Since: algebra-simple-0.1 |
Normed TimeSpec Source # | Since: 0.1 |
Normed Integer | Since: algebra-simple-0.1 |
Normed Natural | Since: algebra-simple-0.1 |
Normed Double | Since: algebra-simple-0.1 |
Normed Float | Since: algebra-simple-0.1 |
Normed Int | Since: algebra-simple-0.1 |
Normed Word | Since: algebra-simple-0.1 |
RealFloat a => Normed (Complex a) | Since: algebra-simple-0.1 |
Normed (Ratio Integer) | Since: algebra-simple-0.1 |
Normed (Ratio Natural) | Since: algebra-simple-0.1 |
Normed a => Normed (a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Normed | |
Normed a => Normed (a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Normed | |
Normed a => Normed (a, a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Normed | |
Normed a => Normed (a, a, a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Normed | |
Normed a => Normed (a, a, a, a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Normed | |
Normed a => Normed (a, a, a, a, a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Normed | |
Normed a => Normed (a, a, a, a, a, a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Normed | |
Normed a => Normed (a, a, a, a, a, a, a, a, a) | Since: algebra-simple-0.1 |
Defined in Numeric.Algebra.Normed |
class LowerBounded a where Source #
Names the lower limit of a type. Types that also have a Bounded
instance should define lowerBound === minBound
. This can be derived
with the anyclass strategy.
Examples
>>>
-- -XDeriveAnyClass, -XDerivingStrategies
>>>
data Foo = Foo1 | Foo2 deriving stock (Bounded, Show) deriving anyclass LowerBounded
>>>
lowerBound @Foo
Foo1
Since: bounds-0.1
Minimal complete definition
Nothing
Instances
LowerBounded All | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: All Source # | |
LowerBounded Any | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Any Source # | |
LowerBounded CBool | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CBool Source # | |
LowerBounded CChar | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CChar Source # | |
LowerBounded CInt | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CInt Source # | |
LowerBounded CIntMax | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CIntMax Source # | |
LowerBounded CIntPtr | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CIntPtr Source # | |
LowerBounded CLLong | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CLLong Source # | |
LowerBounded CLong | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CLong Source # | |
LowerBounded CPtrdiff | Since: bounds-0.1 |
Defined in Data.Bounds Methods | |
LowerBounded CSChar | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CSChar Source # | |
LowerBounded CShort | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CShort Source # | |
LowerBounded CSigAtomic | Since: bounds-0.1 |
Defined in Data.Bounds Methods | |
LowerBounded CSize | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CSize Source # | |
LowerBounded CUChar | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CUChar Source # | |
LowerBounded CUInt | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CUInt Source # | |
LowerBounded CUIntMax | Since: bounds-0.1 |
Defined in Data.Bounds Methods | |
LowerBounded CUIntPtr | Since: bounds-0.1 |
Defined in Data.Bounds Methods | |
LowerBounded CULLong | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CULLong Source # | |
LowerBounded CULong | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CULong Source # | |
LowerBounded CUShort | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CUShort Source # | |
LowerBounded CWchar | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CWchar Source # | |
LowerBounded IntPtr | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: IntPtr Source # | |
LowerBounded WordPtr | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: WordPtr Source # | |
LowerBounded ByteOrder | Since: bounds-0.1 |
Defined in Data.Bounds Methods | |
LowerBounded Associativity | Since: bounds-0.1 |
Defined in Data.Bounds Methods | |
LowerBounded DecidedStrictness | Since: bounds-0.1 |
Defined in Data.Bounds Methods | |
LowerBounded SourceStrictness | Since: bounds-0.1 |
Defined in Data.Bounds Methods | |
LowerBounded SourceUnpackedness | Since: bounds-0.1 |
Defined in Data.Bounds Methods | |
LowerBounded Int16 | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Int16 Source # | |
LowerBounded Int32 | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Int32 Source # | |
LowerBounded Int64 | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Int64 Source # | |
LowerBounded Int8 | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Int8 Source # | |
LowerBounded GeneralCategory | Since: bounds-0.1 |
Defined in Data.Bounds Methods | |
LowerBounded Word16 | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Word16 Source # | |
LowerBounded Word32 | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Word32 Source # | |
LowerBounded Word64 | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Word64 Source # | |
LowerBounded Word8 | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Word8 Source # | |
LowerBounded CBlkCnt | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CBlkCnt Source # | |
LowerBounded CBlkSize | Since: bounds-0.1 |
Defined in Data.Bounds Methods | |
LowerBounded CClockId | Since: bounds-0.1 |
Defined in Data.Bounds Methods | |
LowerBounded CDev | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CDev Source # | |
LowerBounded CFsBlkCnt | Since: bounds-0.1 |
Defined in Data.Bounds Methods | |
LowerBounded CFsFilCnt | Since: bounds-0.1 |
Defined in Data.Bounds Methods | |
LowerBounded CGid | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CGid Source # | |
LowerBounded CId | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CId Source # | |
LowerBounded CIno | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CIno Source # | |
LowerBounded CKey | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CKey Source # | |
LowerBounded CMode | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CMode Source # | |
LowerBounded CNfds | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CNfds Source # | |
LowerBounded CNlink | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CNlink Source # | |
LowerBounded COff | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: COff Source # | |
LowerBounded CPid | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CPid Source # | |
LowerBounded CRLim | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CRLim Source # | |
LowerBounded CSsize | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CSsize Source # | |
LowerBounded CTcflag | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CTcflag Source # | |
LowerBounded CUid | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: CUid Source # | |
LowerBounded Fd | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Fd Source # | |
LowerBounded TimeSpec Source # | Since: 0.1 |
Defined in Effects.Time Methods | |
LowerBounded Ordering | Since: bounds-0.1 |
Defined in Data.Bounds Methods | |
LowerBounded Natural | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Natural Source # | |
LowerBounded () | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: () Source # | |
LowerBounded Bool | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Bool Source # | |
LowerBounded Char | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Char Source # | |
LowerBounded Int | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Int Source # | |
LowerBounded Levity | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Levity Source # | |
LowerBounded VecCount | Since: bounds-0.1 |
Defined in Data.Bounds Methods | |
LowerBounded VecElem | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: VecElem Source # | |
LowerBounded Word | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Word Source # | |
LowerBounded a => LowerBounded (And a) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: And a Source # | |
LowerBounded a => LowerBounded (Iff a) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Iff a Source # | |
LowerBounded a => LowerBounded (Ior a) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Ior a Source # | |
LowerBounded a => LowerBounded (Xor a) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Xor a Source # | |
LowerBounded a => LowerBounded (Identity a) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Identity a Source # | |
UpperBounded a => LowerBounded (Down a) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Down a Source # | |
LowerBounded a => LowerBounded (First a) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: First a Source # | |
LowerBounded a => LowerBounded (Last a) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Last a Source # | |
LowerBounded a => LowerBounded (Max a) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Max a Source # | |
LowerBounded a => LowerBounded (Min a) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Min a Source # | |
LowerBounded a => LowerBounded (WrappedMonoid a) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: WrappedMonoid a Source # | |
LowerBounded a => LowerBounded (Dual a) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Dual a Source # | |
LowerBounded a => LowerBounded (Product a) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Product a Source # | |
LowerBounded a => LowerBounded (Sum a) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Sum a Source # | |
Bounded a => LowerBounded (Bounds a) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Bounds a Source # | |
LowerBounded a => LowerBounded (Solo a) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Solo a Source # | |
LowerBounded (Proxy t) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Proxy t Source # | |
(LowerBounded a, LowerBounded b) => LowerBounded (a, b) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: (a, b) Source # | |
LowerBounded a => LowerBounded (Const a b) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Const a b Source # | |
(Applicative f, LowerBounded a) => LowerBounded (Ap f a) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Ap f a Source # | |
Coercible a b => LowerBounded (Coercion a b) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: Coercion a b Source # | |
a ~ b => LowerBounded (a :~: b) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: a :~: b Source # | |
(LowerBounded a, LowerBounded b, LowerBounded c) => LowerBounded (a, b, c) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: (a, b, c) Source # | |
a ~~ b => LowerBounded (a :~~: b) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: a :~~: b Source # | |
(LowerBounded a, LowerBounded b, LowerBounded c, LowerBounded d) => LowerBounded (a, b, c, d) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: (a, b, c, d) Source # | |
(LowerBounded a, LowerBounded b, LowerBounded c, LowerBounded d, LowerBounded e) => LowerBounded (a, b, c, d, e) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: (a, b, c, d, e) Source # | |
(LowerBounded a, LowerBounded b, LowerBounded c, LowerBounded d, LowerBounded e, LowerBounded f) => LowerBounded (a, b, c, d, e, f) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: (a, b, c, d, e, f) Source # | |
(LowerBounded a, LowerBounded b, LowerBounded c, LowerBounded d, LowerBounded e, LowerBounded f, LowerBounded g) => LowerBounded (a, b, c, d, e, f, g) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: (a, b, c, d, e, f, g) Source # | |
(LowerBounded a, LowerBounded b, LowerBounded c, LowerBounded d, LowerBounded e, LowerBounded f, LowerBounded g, LowerBounded h) => LowerBounded (a, b, c, d, e, f, g, h) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: (a, b, c, d, e, f, g, h) Source # | |
(LowerBounded a, LowerBounded b, LowerBounded c, LowerBounded d, LowerBounded e, LowerBounded f, LowerBounded g, LowerBounded h, LowerBounded i) => LowerBounded (a, b, c, d, e, f, g, h, i) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: (a, b, c, d, e, f, g, h, i) Source # | |
(LowerBounded a, LowerBounded b, LowerBounded c, LowerBounded d, LowerBounded e, LowerBounded f, LowerBounded g, LowerBounded h, LowerBounded i, LowerBounded j) => LowerBounded (a, b, c, d, e, f, g, h, i, j) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: (a, b, c, d, e, f, g, h, i, j) Source # | |
(LowerBounded a, LowerBounded b, LowerBounded c, LowerBounded d, LowerBounded e, LowerBounded f, LowerBounded g, LowerBounded h, LowerBounded i, LowerBounded j, LowerBounded k) => LowerBounded (a, b, c, d, e, f, g, h, i, j, k) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: (a, b, c, d, e, f, g, h, i, j, k) Source # | |
(LowerBounded a, LowerBounded b, LowerBounded c, LowerBounded d, LowerBounded e, LowerBounded f, LowerBounded g, LowerBounded h, LowerBounded i, LowerBounded j, LowerBounded k, LowerBounded l) => LowerBounded (a, b, c, d, e, f, g, h, i, j, k, l) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: (a, b, c, d, e, f, g, h, i, j, k, l) Source # | |
(LowerBounded a, LowerBounded b, LowerBounded c, LowerBounded d, LowerBounded e, LowerBounded f, LowerBounded g, LowerBounded h, LowerBounded i, LowerBounded j, LowerBounded k, LowerBounded l, LowerBounded m) => LowerBounded (a, b, c, d, e, f, g, h, i, j, k, l, m) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: (a, b, c, d, e, f, g, h, i, j, k, l, m) Source # | |
(LowerBounded a, LowerBounded b, LowerBounded c, LowerBounded d, LowerBounded e, LowerBounded f, LowerBounded g, LowerBounded h, LowerBounded i, LowerBounded j, LowerBounded k, LowerBounded l, LowerBounded m, LowerBounded n) => LowerBounded (a, b, c, d, e, f, g, h, i, j, k, l, m, n) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n) Source # | |
(LowerBounded a, LowerBounded b, LowerBounded c, LowerBounded d, LowerBounded e, LowerBounded f, LowerBounded g, LowerBounded h, LowerBounded i, LowerBounded j, LowerBounded k, LowerBounded l, LowerBounded m, LowerBounded n, LowerBounded o) => LowerBounded (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) | Since: bounds-0.1 |
Defined in Data.Bounds Methods lowerBound :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) Source # |
class UpperBoundless a Source #
Types that have no upper bound.
Since: bounds-0.1
Instances
UpperBoundless TimeSpec Source # | Since: 0.1 |
Defined in Effects.Time | |
UpperBoundless Integer | Since: bounds-0.1 |
Defined in Data.Bounds | |
UpperBoundless Natural | Since: bounds-0.1 |
Defined in Data.Bounds |