numeric-prelude-0.4.2: An experimental alternative hierarchy of numeric type classes

Copyright(c) Henning Thielemann 2007
Maintainerhaskell@henning-thielemann.de
Stabilitystable
PortabilityHaskell 98
Safe HaskellNone
LanguageHaskell98

Number.NonNegative

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 C.

Synopsis

Documentation

data T a :: * -> *

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) 
Num a => Monoid (T a) 
(Ord a, Num a) => C (T a) 
(Ord a, C a) => C (T a) 
C a => C (T a) 
(Ord a, C a) => C (T a) 
(Ord a, C a) => C (T a) 
C a => C (T a) 
(Ord a, C a) => C (T a) 
(C a, Ord a, C a) => C (T a) 
(Ord a, C a) => C (T a) 
(Ord a, C a) => C (T a) 
C a => C (T a) 
C a => C (T a) 
(Ord a, C a) => C (T a) 
(Ord a, C a) => C (T a) 
(C a, C a) => C (T a) 

fromNumber :: (Ord a, C a) => a -> T a Source

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

fromNumberMsg Source

Arguments

:: (Ord a, C a) 
=> String

name of the calling function to be used in the error message

-> a 
-> T a 

fromNumberClip :: (Ord a, C a) => a -> T a Source

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 a

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 -> a

type Int = T Int

type Float = T Float

type Double = T Double

type Ratio a = T (T a) Source