| Safe Haskell | Safe |
|---|---|
| Language | Haskell98 |
Algebra.ZeroTestable
- class C a where
- defltIsZero :: (Eq a, C a) => a -> Bool
Documentation
Maybe the naming should be according to Algebra.Unit:
Algebra.Zero as module name, and query as method name.
Minimal complete definition
Instances
| C Double # | |
| C Float # | |
| C Int # | |
| C Int8 # | |
| C Int16 # | |
| C Int32 # | |
| C Int64 # | |
| C Integer # | |
| C Word # | |
| C Word8 # | |
| C Word16 # | |
| C Word32 # | |
| C Word64 # | |
| C T # | |
| C T # | |
| C T # | |
| C T # | |
| C v => C [v] # | |
| (C a, C a) => C (T a) # | |
| (Eq a, Num a) => C (T a) # | |
| C a => C (T a) # | |
| C a => C (T a) # | |
| C a => C (T a) # | |
| C a => C (T a) # | |
| C a => C (T a) # | |
| C a => C (T a) # | |
| (C v0, C v1) => C (v0, v1) # | |
| C v => C (T a v) # | |
| C v => C (T a v) # | |
| C v => C (T a v) # | |
| (C v0, C v1, C v2) => C (v0, v1, v2) # | |
defltIsZero :: (Eq a, C a) => a -> Bool #
Checks if a number is the zero element.
This test is not possible for all C types,
since e.g. a function type does not belong to Eq.
isZero is possible for some types where (==zero) fails
because there is no unique zero.
Examples are
vector (the length of the zero vector is unknown),
physical values (the unit of a zero quantity is unknown),
residue class (the modulus is unknown).