Weaken constraints on Data.Complex functions
authorHerbert Valerio Riedel <hvr@gnu.org>
Sat, 19 Apr 2014 11:56:36 +0000 (13:56 +0200)
committerHerbert Valerio Riedel <hvr@gnu.org>
Sat, 19 Apr 2014 12:05:49 +0000 (14:05 +0200)
commit7b04d35a87f1ee2904579a916ef1a6b0aa6fc7b8
tree094fef715ed3803bc4f96653f3bf0f74c357dbb9
parentdc2b8ae261d0219657196dc91a408ec6f0f3de52
Weaken constraints on Data.Complex functions

The RealFloat data type context was dropped from Data.Complex some time
ago (see ea280135dd888ac41d8804a9e37e358180cf13ac). However, the rest of
the API in that module was left as-is even though many of the accessors
in that module would work with much more general types now.

This change simplifies the signatures of the functions above, which in
the current API all unnecessarily take a RealFloat constraint that they
don't use (and which may cause to pass around superflous type-class
dictionaries):

    realPart  :: Complex a -> a
    imagPart  :: Complex a -> a
    conjugate :: Num a => Complex a -> Complex a
    mkPolar   :: Floating a => a -> a -> Complex a
    cis       :: Floating a => a -> Complex a

This was originally proposed by Edward Kmett in

  http://www.haskell.org/pipermail/libraries/2014-March/022358.html

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
libraries/base/Data/Complex.hs
libraries/base/changelog.md