a-piece-of-flake-0.0.1: src/PieceOfFlake/TotalMath.hs
module PieceOfFlake.TotalMath (Nz, notZero, divNz, realToFracNz) where import Prelude newtype Nz a = Nz a notZero :: (Eq a, Num a) => a -> Maybe (Nz a) notZero 0 = Nothing notZero x = pure $ Nz x divNz :: Fractional a => a -> Nz a -> a divNz a (Nz b) = a / b realToFracNz :: (Real a, Fractional b) => Nz a -> Nz b realToFracNz (Nz x) = Nz $ realToFrac x