non-negative-0.0.5.1: Non-negative numbers

Portability Haskell 98 stable haskell@henning-thielemann.de

Numeric.NonNegative.Wrapper

Description

A type for non-negative numbers. It performs a run-time check at construction time (i.e. at run-time) and is a member of the non-negative number type class `Numeric.NonNegative.Class.C`.

Synopsis

# Documentation

data T a Source

Instances

 (Ord a, Num a, Bounded a) => Bounded (T a) (Ord a, Num a, Enum a) => Enum (T a) Eq a => Eq (T a) (Ord a, Floating a) => Floating (T a) (Ord a, Fractional a) => Fractional (T a) Integral a => Integral (T a) (Ord a, Num a) => Num (T a) Ord a => Ord (T a) Real a => Real (T a) RealFrac a => RealFrac (T a) Show a => Show (T a) (Num a, Arbitrary a) => Arbitrary (T a) (Ord a, Num a) => C (T a)

fromNumber :: (Ord a, Num a) => a -> T aSource

Convert a number to a non-negative number. If a negative number is given, an error is raised.

Arguments

 :: (Ord a, Num a) => String name of the calling function to be used in the error message -> a -> T a

fromNumberClip :: (Ord a, Num a) => a -> T aSource

Convert a number to a non-negative number. A negative number will be replaced by zero. Use this function with care since it may hide bugs.

fromNumberUnsafe :: a -> T aSource

Wrap a number into a non-negative number without doing checks. This routine exists entirely for efficiency reasons and must be used only in cases where you are absolutely sure, that the input number is non-negative.

toNumber :: T a -> aSource

type Int = T IntSource

type Ratio a = T (Ratio a)Source