Avoid passing unnecessary dictionaries in Data.Complex

Edward Kmett ekmett at gmail.com
Sat Mar 15 04:16:18 UTC 2014


We removed the data type context from Data.Complex some time ago.

However, when we did so, we left the rest of the API in that module intact.

Many of the accessors in that module (should) work with much more general
types now!

e.g.

realPart :: Complex a -> a

instead of

realPart :: RealFloat a => Complex a -> a

I propose we stop passing around dictionaries we don't need to methods that
don't use them.

Concretely, I'm proposing we simplify the signatures of the following
functions, which in the current API all unnecessarily take a
RealFloatconstraint that they don't use.

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

Discussion Period: 2 weeks

-Edward Kmett
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/libraries/attachments/20140315/e374f97f/attachment.html>


More information about the Libraries mailing list