-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A data type for representing numeric values, except zero. -- @package notzero @version 0.0.9 module Data.NotZero data NotZero a getNotZero :: NotZero a -> a notZero :: (Eq a, Num a) => Prism' a (NotZero a) notZeroElse :: (Eq a, Num a) => NotZero a -> a -> NotZero a notZero1 :: (Eq a, Num a) => NotZero a notZeroElse1 :: (Eq a, Num a) => a -> NotZero a instance Eq a => Eq (NotZero a) instance Ord a => Ord (NotZero a) instance Show a => Show (NotZero a) instance Num a => Monoid (NotZero a) instance Num a => Semigroup (NotZero a) module Data.NotZeroOr data NotZeroOr a x IsNotZero :: (NotZero a) -> NotZeroOr a x OrNotZero :: x -> NotZeroOr a x _IsNotZero :: Prism (NotZeroOr a x) (NotZeroOr b x) (NotZero a) (NotZero b) _OrNotZero :: Prism (NotZeroOr a x) (NotZeroOr a y) x y isoNotZeroOr :: Iso (NotZeroOr a x) (NotZeroOr a x) (Either (NotZero a) x) (Either (NotZero a) x) type Number a = NotZeroOr a () getNumber :: Num a => Number a -> a isoNumber :: (Eq a, Num a) => Iso (Number a) (Number a) a a newtype NotZeroOrT a f x NotZeroOrT :: (f (NotZeroOr a x)) -> NotZeroOrT a f x isoNotZeroOrT :: Iso (NotZeroOr a x) (NotZeroOr b y) (NotZeroOrT a Identity x) (NotZeroOrT b Identity y) instance (Eq a, Eq x) => Eq (NotZeroOr a x) instance (Ord a, Ord x) => Ord (NotZeroOr a x) instance (Show a, Show x) => Show (NotZeroOr a x) instance MonadTrans (NotZeroOrT a) instance BindTrans (NotZeroOrT a) instance Monad f => Monad (NotZeroOrT a f) instance (Apply f, Monad f) => Bind (NotZeroOrT a f) instance Applicative f => Applicative (NotZeroOrT a f) instance Apply f => Apply (NotZeroOrT a f) instance Functor f => Functor (NotZeroOrT a f) instance Monad (NotZeroOr a) instance Bind (NotZeroOr a) instance Applicative (NotZeroOr a) instance Apply (NotZeroOr a) instance Functor (NotZeroOr a) instance Monoid x => Monoid (NotZeroOr a x) instance Semigroup (NotZeroOr a x) module Data.AccNotZeroOr data AccNotZeroOr f a x IsAccNotZero :: (f (NotZero a)) -> AccNotZeroOr f a x OrAccNotZero :: x -> AccNotZeroOr f a x _IsAccNotZero :: Prism (AccNotZeroOr f a x) (AccNotZeroOr f b x) (f (NotZero a)) (f (NotZero b)) _OrAccNotZero :: Prism (AccNotZeroOr f a x) (AccNotZeroOr f a y) x y isoAccNotZeroOr :: Iso (AccNotZeroOr f a x) (AccNotZeroOr g a x) (Either (f (NotZero a)) x) (Either (g (NotZero a)) x) type OneNotZeroOr a x = AccNotZeroOr Identity a x isoOneNotZeroOr :: Iso (OneNotZeroOr a x) (OneNotZeroOr b y) (NotZeroOr a x) (NotZeroOr b y) isoOneNotZeroOrNumber :: (Eq a, Num a) => Iso (OneNotZeroOr a ()) (OneNotZeroOr a ()) a a isoOneNotZeroOrT :: Iso (OneNotZeroOr a x) (OneNotZeroOr b y) (NotZeroOrT a Identity x) (NotZeroOrT b Identity y) instance Alt f => Applicative (AccNotZeroOr f a) instance Alt f => Apply (AccNotZeroOr f a) instance Functor f => Functor (AccNotZeroOr f a) instance Monoid x => Monoid (AccNotZeroOr f a x) instance Semigroup (AccNotZeroOr f a x)