time-effectful
Safe HaskellNone
LanguageGHC2021

Effectful.Time.TimeSpec

Description

Provides the TimeSpec type and algebra re-exports.

Since: 0.1

Synopsis

Type

data TimeSpec Source #

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 

Fields

Instances

Instances details
AMonoid TimeSpec Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

Methods

zero :: TimeSpec Source #

ASemigroup TimeSpec Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

Normed TimeSpec Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

LowerBounded TimeSpec Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

UpperBoundless TimeSpec Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

NFData TimeSpec Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

Methods

rnf :: TimeSpec -> () #

Generic TimeSpec Source # 
Instance details

Defined in Effectful.Time.TimeSpec

Associated Types

type Rep TimeSpec

Since: time-effectful-0.1

Instance details

Defined in Effectful.Time.TimeSpec

type Rep TimeSpec = D1 ('MetaData "TimeSpec" "Effectful.Time.TimeSpec" "time-effectful-0.1-inplace" 'False) (C1 ('MetaCons "MkTimeSpec" 'PrefixI 'True) (S1 ('MetaSel ('Just "sec") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Natural) :*: S1 ('MetaSel ('Just "nsec") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Natural)))

Methods

from :: TimeSpec -> Rep TimeSpec x #

to :: Rep TimeSpec x -> TimeSpec #

Show TimeSpec Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

Eq TimeSpec Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

Ord TimeSpec Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

MSemiSpace TimeSpec Natural Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

MSpace TimeSpec Natural Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

Semimodule TimeSpec Natural Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

SemivectorSpace TimeSpec Natural Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

(k ~ A_Lens, a ~ Natural, b ~ Natural) => LabelOptic "nsec" k TimeSpec TimeSpec a b Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

(k ~ A_Lens, a ~ Natural, b ~ Natural) => LabelOptic "sec" k TimeSpec TimeSpec a b Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

type Rep TimeSpec Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

type Rep TimeSpec = D1 ('MetaData "TimeSpec" "Effectful.Time.TimeSpec" "time-effectful-0.1-inplace" 'False) (C1 ('MetaCons "MkTimeSpec" 'PrefixI 'True) (S1 ('MetaSel ('Just "sec") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Natural) :*: S1 ('MetaSel ('Just "nsec") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Natural)))

Creation

fromSeconds :: Double -> TimeSpec Source #

Converts a Double to a TimeSpec.

Since: 0.1

fromNanoSeconds :: Natural -> TimeSpec Source #

Converts Natural nanoseconds to a TimeSpec.

Since: 0.1

Elimination

toSeconds :: TimeSpec -> Double Source #

Converts a TimeSpec to a Double.

Since: 0.1

toNanoSeconds :: TimeSpec -> Natural Source #

Converts a TimeSpec into Natural nanoseconds.

Since: 0.1

Operations

diffTimeSpec :: TimeSpec -> TimeSpec -> TimeSpec Source #

Returns the absolute difference of two TimeSpecs.

Since: 0.1

normalizeTimeSpec :: TimeSpec -> TimeSpec Source #

Normalizes nanoseconds < 1 second.

Since: 0.1

Algebra

class ASemigroup s where Source #

Defines an additive semigroup.

Since: algebra-simple-0.1

Methods

(.+.) :: s -> s -> s infixl 6 Source #

Since: algebra-simple-0.1

Instances

Instances details
ASemigroup Int16 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: Int16 -> Int16 -> Int16 Source #

ASemigroup Int32 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: Int32 -> Int32 -> Int32 Source #

ASemigroup Int64 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: Int64 -> Int64 -> Int64 Source #

ASemigroup Int8 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: Int8 -> Int8 -> Int8 Source #

ASemigroup Word16 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: Word16 -> Word16 -> Word16 Source #

ASemigroup Word32 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: Word32 -> Word32 -> Word32 Source #

ASemigroup Word64 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: Word64 -> Word64 -> Word64 Source #

ASemigroup Word8 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: Word8 -> Word8 -> Word8 Source #

ASemigroup TimeSpec Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

ASemigroup Integer Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

ASemigroup Natural Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

ASemigroup Double Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: Double -> Double -> Double Source #

ASemigroup Float Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: Float -> Float -> Float Source #

ASemigroup Int Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: Int -> Int -> Int Source #

ASemigroup Word Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: Word -> Word -> Word Source #

RealFloat a => ASemigroup (Complex a) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: Complex a -> Complex a -> Complex a Source #

ASemigroup (Ratio Integer) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

ASemigroup (Ratio Natural) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

HasResolution k => ASemigroup (Fixed k) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: Fixed k -> Fixed k -> Fixed k Source #

ASemigroup a => ASemigroup (a, a) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: (a, a) -> (a, a) -> (a, a) Source #

ASemigroup a => ASemigroup (a, a, a) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: (a, a, a) -> (a, a, a) -> (a, a, a) Source #

ASemigroup a => ASemigroup (a, a, a, a) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: (a, a, a, a) -> (a, a, a, a) -> (a, a, a, a) Source #

ASemigroup a => ASemigroup (a, a, a, a, a) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: (a, a, a, a, a) -> (a, a, a, a, a) -> (a, a, a, a, a) Source #

ASemigroup a => ASemigroup (a, a, a, a, a, a) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: (a, a, a, a, a, a) -> (a, a, a, a, a, a) -> (a, a, a, a, a, a) Source #

ASemigroup a => ASemigroup (a, a, a, a, a, a, a) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: (a, a, a, a, a, a, a) -> (a, a, a, a, a, a, a) -> (a, a, a, a, a, a, a) Source #

ASemigroup a => ASemigroup (a, a, a, a, a, a, a, a) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: (a, a, a, a, a, a, a, a) -> (a, a, a, a, a, a, a, a) -> (a, a, a, a, a, a, a, a) Source #

ASemigroup a => ASemigroup (a, a, a, a, a, a, a, a, a) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

(.+.) :: (a, a, a, a, a, a, a, a, a) -> (a, a, a, a, a, a, a, a, a) -> (a, a, a, a, a, a, a, a, a) Source #

class ASemigroup m => AMonoid m where Source #

Defines a monoid over an additive semigroup.

Since: algebra-simple-0.1

Methods

zero :: m Source #

Should satisfy:

-- identity
x .+. zero = x = zero .+. x

since 0.1

Instances

Instances details
AMonoid Int16 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Int16 Source #

AMonoid Int32 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Int32 Source #

AMonoid Int64 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Int64 Source #

AMonoid Int8 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Int8 Source #

AMonoid Word16 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Word16 Source #

AMonoid Word32 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Word32 Source #

AMonoid Word64 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Word64 Source #

AMonoid Word8 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Word8 Source #

AMonoid TimeSpec Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

Methods

zero :: TimeSpec Source #

AMonoid Integer Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Integer Source #

AMonoid Natural Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Natural Source #

AMonoid Double Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Double Source #

AMonoid Float Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Float Source #

AMonoid Int Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Int Source #

AMonoid Word Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Word Source #

RealFloat a => AMonoid (Complex a) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Complex a Source #

AMonoid (Ratio Integer) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

AMonoid (Ratio Natural) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

HasResolution k => AMonoid (Fixed k) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Fixed k Source #

AMonoid a => AMonoid (a, a) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: (a, a) Source #

AMonoid a => AMonoid (a, a, a) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: (a, a, a) Source #

AMonoid a => AMonoid (a, a, a, a) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: (a, a, a, a) Source #

AMonoid a => AMonoid (a, a, a, a, a) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: (a, a, a, a, a) Source #

AMonoid a => AMonoid (a, a, a, a, a, a) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: (a, a, a, a, a, a) Source #

AMonoid a => AMonoid (a, a, a, a, a, a, a) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: (a, a, a, a, a, a, a) Source #

AMonoid a => AMonoid (a, a, a, a, a, a, a, a) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: (a, a, a, a, a, a, a, a) Source #

AMonoid a => AMonoid (a, a, a, a, a, a, a, a, a) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: (a, a, a, a, a, a, a, a, a) Source #

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

Methods

(.*) :: m -> r -> m infixl 7 Source #

Since: algebra-simple-0.1

Instances

Instances details
MSemiSpace TimeSpec Natural Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

MSemigroup r => MSemiSpace (r, r) r Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.MSemiSpace

Methods

(.*) :: (r, r) -> r -> (r, r) Source #

MSemigroup r => MSemiSpace (r, r, r) r Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.MSemiSpace

Methods

(.*) :: (r, r, r) -> r -> (r, r, r) Source #

MSemigroup r => MSemiSpace (r, r, r, r) r Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.MSemiSpace

Methods

(.*) :: (r, r, r, r) -> r -> (r, r, r, r) Source #

MSemigroup r => MSemiSpace (r, r, r, r, r) r Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.MSemiSpace

Methods

(.*) :: (r, r, r, r, r) -> r -> (r, r, r, r, r) Source #

MSemigroup r => MSemiSpace (r, r, r, r, r, r) r Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.MSemiSpace

Methods

(.*) :: (r, r, r, r, r, r) -> r -> (r, r, r, r, r, r) Source #

MSemigroup r => MSemiSpace (r, r, r, r, r, r, r) r Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.MSemiSpace

Methods

(.*) :: (r, r, r, r, r, r, r) -> r -> (r, r, r, r, r, r, r) Source #

MSemigroup r => MSemiSpace (r, r, r, r, r, r, r, r) r Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.MSemiSpace

Methods

(.*) :: (r, r, r, r, r, r, r, r) -> r -> (r, r, r, r, r, r, r, r) Source #

MSemigroup r => MSemiSpace (r, r, r, r, r, r, r, r, r) r Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.MSemiSpace

Methods

(.*) :: (r, r, r, r, r, r, r, r, r) -> r -> (r, r, r, r, r, r, r, r, r) Source #

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

Methods

(.%) :: v -> k -> v infixl 7 Source #

Since: algebra-simple-0.1

Instances

Instances details
MSpace TimeSpec Natural Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

MGroup k => MSpace (k, k) k Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.MSpace

Methods

(.%) :: (k, k) -> k -> (k, k) Source #

MGroup k => MSpace (k, k, k) k Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.MSpace

Methods

(.%) :: (k, k, k) -> k -> (k, k, k) Source #

MGroup k => MSpace (k, k, k, k) k Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.MSpace

Methods

(.%) :: (k, k, k, k) -> k -> (k, k, k, k) Source #

MGroup k => MSpace (k, k, k, k, k) k Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.MSpace

Methods

(.%) :: (k, k, k, k, k) -> k -> (k, k, k, k, k) Source #

MGroup k => MSpace (k, k, k, k, k, k) k Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.MSpace

Methods

(.%) :: (k, k, k, k, k, k) -> k -> (k, k, k, k, k, k) Source #

MGroup k => MSpace (k, k, k, k, k, k, k) k Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.MSpace

Methods

(.%) :: (k, k, k, k, k, k, k) -> k -> (k, k, k, k, k, k, k) Source #

MGroup k => MSpace (k, k, k, k, k, k, k, k) k Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.MSpace

Methods

(.%) :: (k, k, k, k, k, k, k, k) -> k -> (k, k, k, k, k, k, k, k) Source #

MGroup k => MSpace (k, k, k, k, k, k, k, k, k) k Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.MSpace

Methods

(.%) :: (k, k, k, k, k, k, k, k, k) -> k -> (k, k, k, k, k, k, k, k, k) Source #

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

Instances details
Semimodule TimeSpec Natural Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

Semiring r => Semimodule (r, r) r Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.Semimodule

Semiring r => Semimodule (r, r, r) r Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.Semimodule

Semiring r => Semimodule (r, r, r, r) r Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.Semimodule

Semiring r => Semimodule (r, r, r, r, r) r Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.Semimodule

Semiring r => Semimodule (r, r, r, r, r, r) r Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.Semimodule

Semiring r => Semimodule (r, r, r, r, r, r, r) r Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.Semimodule

Semiring r => Semimodule (r, r, r, r, r, r, r, r) r Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.Semimodule

Semiring r => Semimodule (r, r, r, r, r, r, r, r, r) r Source #

Since: algebra-simple-0.1

Instance details

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

Instances details
SemivectorSpace TimeSpec Natural Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

Semifield k => SemivectorSpace (k, k) k Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.SemivectorSpace

Semifield k => SemivectorSpace (k, k, k) k Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.SemivectorSpace

Semifield k => SemivectorSpace (k, k, k, k) k Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.SemivectorSpace

Semifield k => SemivectorSpace (k, k, k, k, k) k Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.SemivectorSpace

Semifield k => SemivectorSpace (k, k, k, k, k, k) k Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.SemivectorSpace

Semifield k => SemivectorSpace (k, k, k, k, k, k, k) k Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.SemivectorSpace

Semifield k => SemivectorSpace (k, k, k, k, k, k, k, k) k Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.SemivectorSpace

Semifield k => SemivectorSpace (k, k, k, k, k, k, k, k, k) k Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.SemivectorSpace

class Normed s where Source #

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).
  • Sign : sgn x = 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 the relevant typeclasses 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

Methods

norm :: s -> s Source #

Returns the norm.

Since: algebra-simple-0.1

sgn :: s -> s Source #

Sign function. Notice that when norm is abs, this is the familiar signum function i.e.

sgn x
  | x < 0 = -1
  | x == 0 = 0
  | x > 0 = 1

Since: algebra-simple-0.1

Instances

Instances details
Normed Int16 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed Int32 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed Int64 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed Int8 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Methods

norm :: Int8 -> Int8 Source #

sgn :: Int8 -> Int8 Source #

Normed Word16 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed Word32 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed Word64 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed Word8 Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed TimeSpec Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

Normed Integer Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed Natural Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed Double Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed Float Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed Int Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Methods

norm :: Int -> Int Source #

sgn :: Int -> Int Source #

Normed Word Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Methods

norm :: Word -> Word Source #

sgn :: Word -> Word Source #

RealFloat a => Normed (Complex a) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Methods

norm :: Complex a -> Complex a Source #

sgn :: Complex a -> Complex a Source #

Normed (Ratio Integer) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed (Ratio Natural) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

HasResolution k => Normed (Fixed k) Source #

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Methods

norm :: Fixed k -> Fixed k Source #

sgn :: Fixed k -> Fixed k Source #

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

Expand
>>> -- -XDeriveAnyClass, -XDerivingStrategies
>>> data Foo = Foo1 | Foo2 deriving stock (Bounded, Show) deriving anyclass LowerBounded
>>> lowerBound @Foo
Foo1

Since: bounds-0.1

Minimal complete definition

Nothing

Methods

lowerBound :: a Source #

Since: bounds-0.1

default lowerBound :: Bounded a => a Source #

Instances

Instances details
LowerBounded ByteOrder Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded All Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Any Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CBool Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CChar Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CInt Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CIntMax Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CIntPtr Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CLLong Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CLong Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CPtrdiff Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CSChar Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CShort Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CSigAtomic Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CSize Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CUChar Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CUInt Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CUIntMax Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CUIntPtr Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CULLong Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CULong Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CUShort Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CWchar Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded IntPtr Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded WordPtr Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Associativity Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded DecidedStrictness Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded SourceStrictness Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded SourceUnpackedness Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Int16 Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Int32 Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Int64 Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Int8 Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CBlkCnt Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CBlkSize Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CClockId Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CDev Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CFsBlkCnt Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CFsFilCnt Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CGid Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CId Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CIno Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CKey Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CMode Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CNfds Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CNlink Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded COff Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CPid Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CRLim Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CSsize Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CTcflag Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CUid Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Fd Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Fd Source #

LowerBounded GeneralCategory Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Word16 Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Word32 Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Word64 Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Word8 Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Ordering Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded TimeSpec Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

LowerBounded Natural Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded () Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: () Source #

LowerBounded Bool Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Char Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Int Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Levity Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded VecCount Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded VecElem Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Word Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded a => LowerBounded (First a) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: First a Source #

LowerBounded a => LowerBounded (Last a) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Last a Source #

LowerBounded a => LowerBounded (Max a) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Max a Source #

LowerBounded a => LowerBounded (Min a) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Min a Source #

LowerBounded a => LowerBounded (WrappedMonoid a) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Bounded a => LowerBounded (Bounds a) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded a => LowerBounded (And a) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: And a Source #

LowerBounded a => LowerBounded (Iff a) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Iff a Source #

LowerBounded a => LowerBounded (Ior a) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Ior a Source #

LowerBounded a => LowerBounded (Xor a) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Xor a Source #

LowerBounded a => LowerBounded (Identity a) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

UpperBounded a => LowerBounded (Down a) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Down a Source #

LowerBounded a => LowerBounded (Dual a) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Dual a Source #

LowerBounded a => LowerBounded (Product a) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded a => LowerBounded (Sum a) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Sum a Source #

LowerBounded a => LowerBounded (Solo a) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Solo a Source #

LowerBounded (Proxy t) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Proxy t Source #

(LowerBounded a, LowerBounded b) => LowerBounded (a, b) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: (a, b) Source #

LowerBounded a => LowerBounded (Const a b) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Const a b Source #

(Applicative f, LowerBounded a) => LowerBounded (Ap f a) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Ap f a Source #

Coercible a b => LowerBounded (Coercion a b) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Coercion a b Source #

a ~ b => LowerBounded (a :~: b) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: a :~: b Source #

(LowerBounded a, LowerBounded b, LowerBounded c) => LowerBounded (a, b, c) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: (a, b, c) Source #

a ~~ b => LowerBounded (a :~~: b) Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: a :~~: b Source #

(LowerBounded a, LowerBounded b, LowerBounded c, LowerBounded d) => LowerBounded (a, b, c, d) Source #

Since: bounds-0.1

Instance details

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) Source #

Since: bounds-0.1

Instance details

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) Source #

Since: bounds-0.1

Instance details

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) Source #

Since: bounds-0.1

Instance details

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) Source #

Since: bounds-0.1

Instance details

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) Source #

Since: bounds-0.1

Instance details

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) Source #

Since: bounds-0.1

Instance details

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) Source #

Since: bounds-0.1

Instance details

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) Source #

Since: bounds-0.1

Instance details

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) Source #

Since: bounds-0.1

Instance details

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) Source #

Since: bounds-0.1

Instance details

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) Source #

Since: bounds-0.1

Instance details

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

Instances details
UpperBoundless TimeSpec Source #

Since: 0.1

Instance details

Defined in Effectful.Time.TimeSpec

UpperBoundless Integer Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds

UpperBoundless Natural Source #

Since: bounds-0.1

Instance details

Defined in Data.Bounds