incipit-base-0.3.0.0: lib/Incipit/Fractional.hs
-- |Safe overrides of the methods of class 'Fractional'.
module Incipit.Fractional where
import Data.Eq (Eq)
import Data.Maybe (Maybe (Just, Nothing))
import qualified GHC.Real as Real
import GHC.Real (Fractional)
import Incipit.Integral (safeOp)
-- | Fractional division.
(/) ::
Eq a =>
Fractional a =>
a ->
a ->
Maybe a
(/) =
safeOp (Real./)
-- | Reciprocal fraction.
recip ::
Eq a =>
Fractional a =>
a ->
Maybe a
recip = \case
0 ->
Nothing
a ->
Just (Real.recip a)