<div dir="ltr">We removed the data type context from <font face="courier new, monospace">Data.Complex</font> some time ago.<div><br></div><div>However, when we did so, we left the rest of the API in that module intact.</div>
<div><br></div><div>Many of the accessors in that module (should) work with much more general types now!</div><div><br></div><div>e.g. </div><div><br></div><div><font face="courier new, monospace">realPart :: Complex a -> a</font></div>
<div><br></div><div>instead of</div><div><br></div><div><font face="courier new, monospace">realPart :: RealFloat a => Complex a -> a</font></div><div><br></div><div>I propose we stop passing around dictionaries we don't need to methods that don't use them.</div>
<div><br></div><div>Concretely, I'm proposing we simplify the signatures of the following functions, which in the current API all unnecessarily take a <font face="courier new, monospace">RealFloat</font> constraint that they don't use.</div>
<div><br></div><font face="courier new, monospace">realPart :: Complex a -> a<br>imagPart :: Complex a -> a<br>conjugate :: Num a => Complex a -> Complex a<br>mkPolar   :: Floating a => a -> a -> Complex a<br>
cis       :: Floating a => a -> Complex a</font><div><br></div><div>Discussion Period: 2 weeks</div><div><br></div><div>-Edward Kmett</div></div>