Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
NumHask.Data.Positive
Description
Field classes
Synopsis
- newtype Positive a = UnsafePositive {
- unPositive :: a
- positive :: (Additive a, MeetSemiLattice a) => a -> Positive a
- maybePositive :: (Additive a, MeetSemiLattice a) => a -> Maybe (Positive a)
- positive_ :: a -> Positive a
- class Monus a where
- (∸) :: a -> a -> a
- class Addus a where
- (∔) :: a -> a -> a
- type MonusSemiField a = (Monus a, Distributive a, Divisive a)
Documentation
zero is positive
>>>
1 :: Positive Int
UnsafePositive {unPositive = 1}
>>>
positive 0 == zero
True
>>>
positive (-1)
UnsafePositive {unPositive = 0}
>>>
maybePositive (-1)
Nothing
Constructors
UnsafePositive | |
Fields
|
Instances
positive :: (Additive a, MeetSemiLattice a) => a -> Positive a Source #
Constructor which returns zero for a negative input.
>>>
positive (-1)
UnsafePositive {unPositive = 0}
maybePositive :: (Additive a, MeetSemiLattice a) => a -> Maybe (Positive a) Source #
Constructor which returns Nothing for a negative number. >>> maybePositive (-one) Nothing
positive_ :: a -> Positive a Source #
Unsafe constructors.
>>>
positive_ (-one)
UnsafePositive {unPositive = -1}
Monus or truncated subtraction.
>>>
positive 4 ∸ positive 7
UnsafePositive {unPositive = 0}
>>>
4 ∸ 7 :: Positive Int
UnsafePositive {unPositive = 0}
Minimal complete definition
Methods
(∸) :: a -> a -> a infixl 6 Source #
default (∸) :: (BoundedJoinSemiLattice a, MeetSemiLattice a, Subtractive a) => a -> a -> a Source #
Instances
(Subtractive a, MeetSemiLattice a) => Monus (Positive a) Source # | |
Truncated addition
Minimal complete definition
Methods
(∔) :: a -> a -> a infixl 6 Source #
default (∔) :: (BoundedMeetSemiLattice a, JoinSemiLattice a, Additive a) => a -> a -> a Source #
type MonusSemiField a = (Monus a, Distributive a, Divisive a) Source #
A field but with truncated subtraction.