Numeric operations
- class (Type a, Num a, FullProp (Size a)) => Numeric a where
- defaultAbs :: Numeric a => (Size a -> Size a) -> Data a -> Data a
- defaultSignum :: Numeric a => (Size a -> Size a) -> Data a -> Data a
- defaultAdd :: Numeric a => (Size a -> Size a -> Size a) -> Data a -> Data a -> Data a
- defaultSub :: Numeric a => (Size a -> Size a -> Size a) -> Data a -> Data a -> Data a
- defaultMul :: Numeric a => (Size a -> Size a -> Size a) -> Data a -> Data a -> Data a
- optAbs :: (Numeric a, BoundedInt b, Size a ~ Range b) => Data a -> Data a
- optSignum :: (Numeric a, BoundedInt b, Size a ~ Range b) => Data a -> Data a
- optAdd :: (Numeric a, Num (Size a)) => Data a -> Data a -> Data a
- optSub :: (Numeric a, Num (Size a)) => Data a -> Data a -> Data a
- optMul :: (Numeric a, Num (Size a)) => Data a -> Data a -> Data a
- rangeProp :: forall a. (Bounded a, Integral a, Size a ~ Range a) => Range Integer -> Tagged a (Size a)