I started to wonder what is the difference between div and / so they are
2 separate symbols.

div:
  Take a Integral divide and round (down)

(/):
  Take a Fractional divide and usually round

In some applications I would like to use any of those but it is not
possible. Is this unification taken into account while reworking numeric
classes?

I.e. why not:

class Num a => Divisable a where
    (/) :: a -> a -> a

class (Real a, Enum a, Divisable a) => Integral a where
    quot :: a -> a -> a
    rem :: a -> a -> a
    div = (/)
    mod :: a -> a -> a
    x `quotRem` y = (x `quot` y, x `rem y)
    x `divMod` y = (x `div` y, x `mod` y)
    toInteger :: a -> Integer

class Divisable a => Fractional a where
    recip = (1/) :: a -> a
    fromRational :: Rational -> a

(Example does not take into account other refactoring)

Regards

PS. Why is Fd/cPid etc. Integral or even Num?
What does (stdin + stderr) `mod` stdout mean (result will be stdin).

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to