{-# language Unsafe #-} module NatOptics.NonNegative.Unsafe ( NonNegative (..), ) where import Data.Eq ( Eq ) import Data.Ord ( Ord ) import Text.Show ( Show ) newtype NonNegative number = NonNegativeUnsafe{ forall number. NonNegative number -> number number :: number } deriving newtype (NonNegative number -> NonNegative number -> Bool (NonNegative number -> NonNegative number -> Bool) -> (NonNegative number -> NonNegative number -> Bool) -> Eq (NonNegative number) forall number. Eq number => NonNegative number -> NonNegative number -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: NonNegative number -> NonNegative number -> Bool $c/= :: forall number. Eq number => NonNegative number -> NonNegative number -> Bool == :: NonNegative number -> NonNegative number -> Bool $c== :: forall number. Eq number => NonNegative number -> NonNegative number -> Bool Eq, Eq (NonNegative number) Eq (NonNegative number) -> (NonNegative number -> NonNegative number -> Ordering) -> (NonNegative number -> NonNegative number -> Bool) -> (NonNegative number -> NonNegative number -> Bool) -> (NonNegative number -> NonNegative number -> Bool) -> (NonNegative number -> NonNegative number -> Bool) -> (NonNegative number -> NonNegative number -> NonNegative number) -> (NonNegative number -> NonNegative number -> NonNegative number) -> Ord (NonNegative number) NonNegative number -> NonNegative number -> Bool NonNegative number -> NonNegative number -> Ordering NonNegative number -> NonNegative number -> NonNegative number forall a. Eq a -> (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a forall {number}. Ord number => Eq (NonNegative number) forall number. Ord number => NonNegative number -> NonNegative number -> Bool forall number. Ord number => NonNegative number -> NonNegative number -> Ordering forall number. Ord number => NonNegative number -> NonNegative number -> NonNegative number min :: NonNegative number -> NonNegative number -> NonNegative number $cmin :: forall number. Ord number => NonNegative number -> NonNegative number -> NonNegative number max :: NonNegative number -> NonNegative number -> NonNegative number $cmax :: forall number. Ord number => NonNegative number -> NonNegative number -> NonNegative number >= :: NonNegative number -> NonNegative number -> Bool $c>= :: forall number. Ord number => NonNegative number -> NonNegative number -> Bool > :: NonNegative number -> NonNegative number -> Bool $c> :: forall number. Ord number => NonNegative number -> NonNegative number -> Bool <= :: NonNegative number -> NonNegative number -> Bool $c<= :: forall number. Ord number => NonNegative number -> NonNegative number -> Bool < :: NonNegative number -> NonNegative number -> Bool $c< :: forall number. Ord number => NonNegative number -> NonNegative number -> Bool compare :: NonNegative number -> NonNegative number -> Ordering $ccompare :: forall number. Ord number => NonNegative number -> NonNegative number -> Ordering Ord, Int -> NonNegative number -> ShowS [NonNegative number] -> ShowS NonNegative number -> String (Int -> NonNegative number -> ShowS) -> (NonNegative number -> String) -> ([NonNegative number] -> ShowS) -> Show (NonNegative number) forall number. Show number => Int -> NonNegative number -> ShowS forall number. Show number => [NonNegative number] -> ShowS forall number. Show number => NonNegative number -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [NonNegative number] -> ShowS $cshowList :: forall number. Show number => [NonNegative number] -> ShowS show :: NonNegative number -> String $cshow :: forall number. Show number => NonNegative number -> String showsPrec :: Int -> NonNegative number -> ShowS $cshowsPrec :: forall number. Show number => Int -> NonNegative number -> ShowS Show)