When using the native Data.Complex implementation in Haskell, constructing a complex number using non-fractional type using Int is possible. However, it is impossible to perform any calculation with it:
> let x = 1:+1 :: Complex Int
> x * x
<interactive>:44:1: error:
* No instance for (RealFloat Int) arising from a use of `*'
* In the expression: x * x
In an equation for `it': it = x * x
This becomes a problem when I am trying to use arbitrary significance structures like Data.Scientific since it has no instance for RealFloat as well. What can I do to remedy this situation? Writing an instance of RealFloat for Scientifc will result in an orphan instance. Should I write my own Complex class?
