time-effectful-0.1: Time effects
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

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

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

ASemigroup Int32

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

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

ASemigroup Int64

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

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

ASemigroup Int8

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

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

ASemigroup Word16

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

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

ASemigroup Word32

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

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

ASemigroup Word64

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

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

ASemigroup Word8

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

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

ASemigroup Natural

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

ASemigroup Double

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

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

ASemigroup Float

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

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

ASemigroup Int

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

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

ASemigroup Word

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

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

RealFloat a => ASemigroup (Complex a)

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

Methods

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

ASemigroup (Ratio Integer)

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

ASemigroup (Ratio Natural)

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.ASemigroup

HasResolution k => ASemigroup (Fixed k)

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)

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)

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)

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)

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)

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)

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)

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)

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

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Int16 Source #

AMonoid Int32

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Int32 Source #

AMonoid Int64

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Int64 Source #

AMonoid Int8

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Int8 Source #

AMonoid Word16

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Word16 Source #

AMonoid Word32

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Word32 Source #

AMonoid Word64

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Word64 Source #

AMonoid Word8

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

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Integer Source #

AMonoid Natural

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Natural Source #

AMonoid Double

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Double Source #

AMonoid Float

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Float Source #

AMonoid Int

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Int Source #

AMonoid Word

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Word Source #

RealFloat a => AMonoid (Complex a)

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Complex a Source #

AMonoid (Ratio Integer)

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

AMonoid (Ratio Natural)

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

HasResolution k => AMonoid (Fixed k)

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: Fixed k Source #

AMonoid a => AMonoid (a, a)

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Additive.AMonoid

Methods

zero :: (a, a) Source #

AMonoid a => AMonoid (a, a, a)

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)

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)

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)

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)

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)

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.Semimodule

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

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.Semimodule

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

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.Semimodule

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

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.Semimodule

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

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.Semimodule

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

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

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

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

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.SemivectorSpace

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

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.SemivectorSpace

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

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.SemivectorSpace

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

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.SemivectorSpace

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

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Space.SemivectorSpace

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

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

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

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

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed Int32

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed Int64

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed Int8

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Methods

norm :: Int8 -> Int8 Source #

sgn :: Int8 -> Int8 Source #

Normed Word16

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed Word32

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed Word64

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed Word8

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

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed Natural

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed Double

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed Float

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed Int

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Methods

norm :: Int -> Int Source #

sgn :: Int -> Int Source #

Normed Word

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)

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)

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

Normed (Ratio Natural)

Since: algebra-simple-0.1

Instance details

Defined in Numeric.Algebra.Normed

HasResolution k => Normed (Fixed k)

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

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded All

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Any

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CBool

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CChar

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CInt

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CIntMax

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CIntPtr

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CLLong

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CLong

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CPtrdiff

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CSChar

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CShort

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CSigAtomic

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CSize

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CUChar

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CUInt

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CUIntMax

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CUIntPtr

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CULLong

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CULong

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CUShort

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CWchar

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded IntPtr

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded WordPtr

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Associativity

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded DecidedStrictness

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded SourceStrictness

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded SourceUnpackedness

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Int16

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Int32

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Int64

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Int8

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CBlkCnt

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CBlkSize

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CClockId

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CDev

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CFsBlkCnt

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CFsFilCnt

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CGid

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CId

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CIno

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CKey

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CMode

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CNfds

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CNlink

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded COff

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CPid

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CRLim

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CSsize

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CTcflag

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded CUid

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Fd

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Fd Source #

LowerBounded GeneralCategory

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Word16

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Word32

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Word64

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Word8

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Ordering

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

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded ()

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: () Source #

LowerBounded Bool

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Char

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Int

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Levity

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded VecCount

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded VecElem

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded Word

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded a => LowerBounded (First a)

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: First a Source #

LowerBounded a => LowerBounded (Last a)

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Last a Source #

LowerBounded a => LowerBounded (Max a)

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Max a Source #

LowerBounded a => LowerBounded (Min a)

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Min a Source #

LowerBounded a => LowerBounded (WrappedMonoid a)

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Bounded a => LowerBounded (Bounds a)

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded a => LowerBounded (And a)

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: And a Source #

LowerBounded a => LowerBounded (Iff a)

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Iff a Source #

LowerBounded a => LowerBounded (Ior a)

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Ior a Source #

LowerBounded a => LowerBounded (Xor a)

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Xor a Source #

LowerBounded a => LowerBounded (Identity a)

Since: bounds-0.1

Instance details

Defined in Data.Bounds

UpperBounded a => LowerBounded (Down a)

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Down a Source #

LowerBounded a => LowerBounded (Dual a)

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Dual a Source #

LowerBounded a => LowerBounded (Product a)

Since: bounds-0.1

Instance details

Defined in Data.Bounds

LowerBounded a => LowerBounded (Sum a)

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Sum a Source #

LowerBounded a => LowerBounded (Solo a)

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Solo a Source #

LowerBounded (Proxy t)

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Proxy t Source #

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

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: (a, b) Source #

LowerBounded a => LowerBounded (Const a b)

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Const a b Source #

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

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Ap f a Source #

Coercible a b => LowerBounded (Coercion a b)

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

lowerBound :: Coercion a b Source #

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

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)

Since: bounds-0.1

Instance details

Defined in Data.Bounds

Methods

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

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

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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

Since: bounds-0.1

Instance details

Defined in Data.Bounds

UpperBoundless Natural

Since: bounds-0.1

Instance details

Defined in Data.Bounds