notzero-0.0.11: A data type for representing numeric values, except zero.

Safe HaskellNone
LanguageHaskell2010

Data.NotZeroOr

Documentation

data NotZeroOr a x Source #

Constructors

IsNotZero (NotZero a) 
OrNotZero x 

Instances

Monad (NotZeroOr a) Source # 

Methods

(>>=) :: NotZeroOr a a -> (a -> NotZeroOr a b) -> NotZeroOr a b #

(>>) :: NotZeroOr a a -> NotZeroOr a b -> NotZeroOr a b #

return :: a -> NotZeroOr a a #

fail :: String -> NotZeroOr a a #

Functor (NotZeroOr a) Source # 

Methods

fmap :: (a -> b) -> NotZeroOr a a -> NotZeroOr a b #

(<$) :: a -> NotZeroOr a b -> NotZeroOr a a #

Applicative (NotZeroOr a) Source # 

Methods

pure :: a -> NotZeroOr a a #

(<*>) :: NotZeroOr a (a -> b) -> NotZeroOr a a -> NotZeroOr a b #

(*>) :: NotZeroOr a a -> NotZeroOr a b -> NotZeroOr a b #

(<*) :: NotZeroOr a a -> NotZeroOr a b -> NotZeroOr a a #

Apply (NotZeroOr a) Source # 

Methods

(<.>) :: NotZeroOr a (a -> b) -> NotZeroOr a a -> NotZeroOr a b #

(.>) :: NotZeroOr a a -> NotZeroOr a b -> NotZeroOr a b #

(<.) :: NotZeroOr a a -> NotZeroOr a b -> NotZeroOr a a #

Bind (NotZeroOr a) Source # 

Methods

(>>-) :: NotZeroOr a a -> (a -> NotZeroOr a b) -> NotZeroOr a b #

join :: NotZeroOr a (NotZeroOr a a) -> NotZeroOr a a #

(Eq x, Eq a) => Eq (NotZeroOr a x) Source # 

Methods

(==) :: NotZeroOr a x -> NotZeroOr a x -> Bool #

(/=) :: NotZeroOr a x -> NotZeroOr a x -> Bool #

(Ord x, Ord a) => Ord (NotZeroOr a x) Source # 

Methods

compare :: NotZeroOr a x -> NotZeroOr a x -> Ordering #

(<) :: NotZeroOr a x -> NotZeroOr a x -> Bool #

(<=) :: NotZeroOr a x -> NotZeroOr a x -> Bool #

(>) :: NotZeroOr a x -> NotZeroOr a x -> Bool #

(>=) :: NotZeroOr a x -> NotZeroOr a x -> Bool #

max :: NotZeroOr a x -> NotZeroOr a x -> NotZeroOr a x #

min :: NotZeroOr a x -> NotZeroOr a x -> NotZeroOr a x #

(Show x, Show a) => Show (NotZeroOr a x) Source # 

Methods

showsPrec :: Int -> NotZeroOr a x -> ShowS #

show :: NotZeroOr a x -> String #

showList :: [NotZeroOr a x] -> ShowS #

Semigroup (NotZeroOr a x) Source # 

Methods

(<>) :: NotZeroOr a x -> NotZeroOr a x -> NotZeroOr a x #

sconcat :: NonEmpty (NotZeroOr a x) -> NotZeroOr a x #

stimes :: Integral b => b -> NotZeroOr a x -> NotZeroOr a x #

Monoid x => Monoid (NotZeroOr a x) Source # 

Methods

mempty :: NotZeroOr a x #

mappend :: NotZeroOr a x -> NotZeroOr a x -> NotZeroOr a x #

mconcat :: [NotZeroOr a x] -> NotZeroOr a x #

type Number a = NotZeroOr a () Source #

getNumber :: Num a => Number a -> a Source #

isoNumber :: (Eq a, Num a) => Iso (Number a) (Number a) a a Source #

newtype NotZeroOrT a f x Source #

Constructors

NotZeroOrT (f (NotZeroOr a x)) 

Instances

MonadTrans (NotZeroOrT a) Source # 

Methods

lift :: Monad m => m a -> NotZeroOrT a m a #

BindTrans (NotZeroOrT a) Source # 

Methods

liftB :: Bind b => b a -> NotZeroOrT a b a #

Monad f => Monad (NotZeroOrT a f) Source # 

Methods

(>>=) :: NotZeroOrT a f a -> (a -> NotZeroOrT a f b) -> NotZeroOrT a f b #

(>>) :: NotZeroOrT a f a -> NotZeroOrT a f b -> NotZeroOrT a f b #

return :: a -> NotZeroOrT a f a #

fail :: String -> NotZeroOrT a f a #

Functor f => Functor (NotZeroOrT a f) Source # 

Methods

fmap :: (a -> b) -> NotZeroOrT a f a -> NotZeroOrT a f b #

(<$) :: a -> NotZeroOrT a f b -> NotZeroOrT a f a #

Applicative f => Applicative (NotZeroOrT a f) Source # 

Methods

pure :: a -> NotZeroOrT a f a #

(<*>) :: NotZeroOrT a f (a -> b) -> NotZeroOrT a f a -> NotZeroOrT a f b #

(*>) :: NotZeroOrT a f a -> NotZeroOrT a f b -> NotZeroOrT a f b #

(<*) :: NotZeroOrT a f a -> NotZeroOrT a f b -> NotZeroOrT a f a #

Apply f => Apply (NotZeroOrT a f) Source # 

Methods

(<.>) :: NotZeroOrT a f (a -> b) -> NotZeroOrT a f a -> NotZeroOrT a f b #

(.>) :: NotZeroOrT a f a -> NotZeroOrT a f b -> NotZeroOrT a f b #

(<.) :: NotZeroOrT a f a -> NotZeroOrT a f b -> NotZeroOrT a f a #

(Apply f, Monad f) => Bind (NotZeroOrT a f) Source # 

Methods

(>>-) :: NotZeroOrT a f a -> (a -> NotZeroOrT a f b) -> NotZeroOrT a f b #

join :: NotZeroOrT a f (NotZeroOrT a f a) -> NotZeroOrT a f a #