packages feed

mixed-types-num 0.2 → 0.2.0.1

raw patch · 13 files changed

+152/−270 lines, 13 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Numeric.MixedTypes.Complex: instance (Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Integer.Type.Integer b, Numeric.MixedTypes.Ring.CanMulAsymmetric b b, Numeric.MixedTypes.AddSub.CanAddSameType (Numeric.MixedTypes.Ring.MulType b b), Numeric.MixedTypes.Field.CanDiv (Numeric.MixedTypes.Ring.MulType GHC.Integer.Type.Integer b) (Numeric.MixedTypes.Ring.MulType b b)) => Numeric.MixedTypes.Field.CanDiv GHC.Integer.Type.Integer (Data.Complex.Complex b)
- Numeric.MixedTypes.Complex: instance (Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Real.Rational b, Numeric.MixedTypes.Ring.CanMulAsymmetric b b, Numeric.MixedTypes.AddSub.CanAddSameType (Numeric.MixedTypes.Ring.MulType b b), Numeric.MixedTypes.Field.CanDiv (Numeric.MixedTypes.Ring.MulType GHC.Real.Rational b) (Numeric.MixedTypes.Ring.MulType b b)) => Numeric.MixedTypes.Field.CanDiv GHC.Real.Rational (Data.Complex.Complex b)
- Numeric.MixedTypes.Complex: instance (Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Types.Double b, Numeric.MixedTypes.Ring.CanMulAsymmetric b b, Numeric.MixedTypes.AddSub.CanAddSameType (Numeric.MixedTypes.Ring.MulType b b), Numeric.MixedTypes.Field.CanDiv (Numeric.MixedTypes.Ring.MulType GHC.Types.Double b) (Numeric.MixedTypes.Ring.MulType b b)) => Numeric.MixedTypes.Field.CanDiv GHC.Types.Double (Data.Complex.Complex b)
- Numeric.MixedTypes.Complex: instance (Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Types.Int b, Numeric.MixedTypes.Ring.CanMulAsymmetric b b, Numeric.MixedTypes.AddSub.CanAddSameType (Numeric.MixedTypes.Ring.MulType b b), Numeric.MixedTypes.Field.CanDiv (Numeric.MixedTypes.Ring.MulType GHC.Types.Int b) (Numeric.MixedTypes.Ring.MulType b b)) => Numeric.MixedTypes.Field.CanDiv GHC.Types.Int (Data.Complex.Complex b)
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanAddAsymmetric GHC.Integer.Type.Integer b => Numeric.MixedTypes.AddSub.CanAddAsymmetric GHC.Integer.Type.Integer (Data.Complex.Complex b)
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanAddAsymmetric GHC.Real.Rational b => Numeric.MixedTypes.AddSub.CanAddAsymmetric GHC.Real.Rational (Data.Complex.Complex b)
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanAddAsymmetric GHC.Types.Double b => Numeric.MixedTypes.AddSub.CanAddAsymmetric GHC.Types.Double (Data.Complex.Complex b)
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanAddAsymmetric GHC.Types.Int b => Numeric.MixedTypes.AddSub.CanAddAsymmetric GHC.Types.Int (Data.Complex.Complex b)
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanAddAsymmetric a GHC.Integer.Type.Integer => Numeric.MixedTypes.AddSub.CanAddAsymmetric (Data.Complex.Complex a) GHC.Integer.Type.Integer
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanAddAsymmetric a GHC.Real.Rational => Numeric.MixedTypes.AddSub.CanAddAsymmetric (Data.Complex.Complex a) GHC.Real.Rational
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanAddAsymmetric a GHC.Types.Double => Numeric.MixedTypes.AddSub.CanAddAsymmetric (Data.Complex.Complex a) GHC.Types.Double
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanAddAsymmetric a GHC.Types.Int => Numeric.MixedTypes.AddSub.CanAddAsymmetric (Data.Complex.Complex a) GHC.Types.Int
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanSub GHC.Integer.Type.Integer b => Numeric.MixedTypes.AddSub.CanSub GHC.Integer.Type.Integer (Data.Complex.Complex b)
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanSub GHC.Real.Rational b => Numeric.MixedTypes.AddSub.CanSub GHC.Real.Rational (Data.Complex.Complex b)
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanSub GHC.Types.Double b => Numeric.MixedTypes.AddSub.CanSub GHC.Types.Double (Data.Complex.Complex b)
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanSub GHC.Types.Int b => Numeric.MixedTypes.AddSub.CanSub GHC.Types.Int (Data.Complex.Complex b)
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanSub a GHC.Integer.Type.Integer => Numeric.MixedTypes.AddSub.CanSub (Data.Complex.Complex a) GHC.Integer.Type.Integer
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanSub a GHC.Real.Rational => Numeric.MixedTypes.AddSub.CanSub (Data.Complex.Complex a) GHC.Real.Rational
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanSub a GHC.Types.Double => Numeric.MixedTypes.AddSub.CanSub (Data.Complex.Complex a) GHC.Types.Double
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanSub a GHC.Types.Int => Numeric.MixedTypes.AddSub.CanSub (Data.Complex.Complex a) GHC.Types.Int
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Eq.HasEqAsymmetric GHC.Integer.Type.Integer b => Numeric.MixedTypes.Eq.HasEqAsymmetric GHC.Integer.Type.Integer (Data.Complex.Complex b)
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Eq.HasEqAsymmetric GHC.Real.Rational b => Numeric.MixedTypes.Eq.HasEqAsymmetric GHC.Real.Rational (Data.Complex.Complex b)
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Eq.HasEqAsymmetric GHC.Types.Double b => Numeric.MixedTypes.Eq.HasEqAsymmetric GHC.Types.Double (Data.Complex.Complex b)
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Eq.HasEqAsymmetric GHC.Types.Int b => Numeric.MixedTypes.Eq.HasEqAsymmetric GHC.Types.Int (Data.Complex.Complex b)
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Eq.HasEqAsymmetric a GHC.Integer.Type.Integer => Numeric.MixedTypes.Eq.HasEqAsymmetric (Data.Complex.Complex a) GHC.Integer.Type.Integer
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Eq.HasEqAsymmetric a GHC.Real.Rational => Numeric.MixedTypes.Eq.HasEqAsymmetric (Data.Complex.Complex a) GHC.Real.Rational
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Eq.HasEqAsymmetric a GHC.Types.Double => Numeric.MixedTypes.Eq.HasEqAsymmetric (Data.Complex.Complex a) GHC.Types.Double
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Eq.HasEqAsymmetric a GHC.Types.Int => Numeric.MixedTypes.Eq.HasEqAsymmetric (Data.Complex.Complex a) GHC.Types.Int
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Field.CanDiv a GHC.Integer.Type.Integer => Numeric.MixedTypes.Field.CanDiv (Data.Complex.Complex a) GHC.Integer.Type.Integer
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Field.CanDiv a GHC.Real.Rational => Numeric.MixedTypes.Field.CanDiv (Data.Complex.Complex a) GHC.Real.Rational
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Field.CanDiv a GHC.Types.Double => Numeric.MixedTypes.Field.CanDiv (Data.Complex.Complex a) GHC.Types.Double
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Field.CanDiv a GHC.Types.Int => Numeric.MixedTypes.Field.CanDiv (Data.Complex.Complex a) GHC.Types.Int
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Integer.Type.Integer b => Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Integer.Type.Integer (Data.Complex.Complex b)
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Real.Rational b => Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Real.Rational (Data.Complex.Complex b)
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Types.Double b => Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Types.Double (Data.Complex.Complex b)
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Types.Int b => Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Types.Int (Data.Complex.Complex b)
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Ring.CanMulAsymmetric a GHC.Integer.Type.Integer => Numeric.MixedTypes.Ring.CanMulAsymmetric (Data.Complex.Complex a) GHC.Integer.Type.Integer
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Ring.CanMulAsymmetric a GHC.Real.Rational => Numeric.MixedTypes.Ring.CanMulAsymmetric (Data.Complex.Complex a) GHC.Real.Rational
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Ring.CanMulAsymmetric a GHC.Types.Double => Numeric.MixedTypes.Ring.CanMulAsymmetric (Data.Complex.Complex a) GHC.Types.Double
- Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Ring.CanMulAsymmetric a GHC.Types.Int => Numeric.MixedTypes.Ring.CanMulAsymmetric (Data.Complex.Complex a) GHC.Types.Int
+ Numeric.MixedTypes.Complex: instance (Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Integer.Type.Integer b0, Numeric.MixedTypes.Ring.CanMulAsymmetric b0 b0, Numeric.MixedTypes.AddSub.CanAddSameType (Numeric.MixedTypes.Ring.MulType b0 b0), Numeric.MixedTypes.Field.CanDiv (Numeric.MixedTypes.Ring.MulType GHC.Integer.Type.Integer b0) (Numeric.MixedTypes.Ring.MulType b0 b0)) => Numeric.MixedTypes.Field.CanDiv GHC.Integer.Type.Integer (Data.Complex.Complex b0)
+ Numeric.MixedTypes.Complex: instance (Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Real.Rational b0, Numeric.MixedTypes.Ring.CanMulAsymmetric b0 b0, Numeric.MixedTypes.AddSub.CanAddSameType (Numeric.MixedTypes.Ring.MulType b0 b0), Numeric.MixedTypes.Field.CanDiv (Numeric.MixedTypes.Ring.MulType GHC.Real.Rational b0) (Numeric.MixedTypes.Ring.MulType b0 b0)) => Numeric.MixedTypes.Field.CanDiv GHC.Real.Rational (Data.Complex.Complex b0)
+ Numeric.MixedTypes.Complex: instance (Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Types.Double b0, Numeric.MixedTypes.Ring.CanMulAsymmetric b0 b0, Numeric.MixedTypes.AddSub.CanAddSameType (Numeric.MixedTypes.Ring.MulType b0 b0), Numeric.MixedTypes.Field.CanDiv (Numeric.MixedTypes.Ring.MulType GHC.Types.Double b0) (Numeric.MixedTypes.Ring.MulType b0 b0)) => Numeric.MixedTypes.Field.CanDiv GHC.Types.Double (Data.Complex.Complex b0)
+ Numeric.MixedTypes.Complex: instance (Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Types.Int b0, Numeric.MixedTypes.Ring.CanMulAsymmetric b0 b0, Numeric.MixedTypes.AddSub.CanAddSameType (Numeric.MixedTypes.Ring.MulType b0 b0), Numeric.MixedTypes.Field.CanDiv (Numeric.MixedTypes.Ring.MulType GHC.Types.Int b0) (Numeric.MixedTypes.Ring.MulType b0 b0)) => Numeric.MixedTypes.Field.CanDiv GHC.Types.Int (Data.Complex.Complex b0)
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanAddAsymmetric GHC.Integer.Type.Integer b0 => Numeric.MixedTypes.AddSub.CanAddAsymmetric GHC.Integer.Type.Integer (Data.Complex.Complex b0)
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanAddAsymmetric GHC.Real.Rational b0 => Numeric.MixedTypes.AddSub.CanAddAsymmetric GHC.Real.Rational (Data.Complex.Complex b0)
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanAddAsymmetric GHC.Types.Double b0 => Numeric.MixedTypes.AddSub.CanAddAsymmetric GHC.Types.Double (Data.Complex.Complex b0)
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanAddAsymmetric GHC.Types.Int b0 => Numeric.MixedTypes.AddSub.CanAddAsymmetric GHC.Types.Int (Data.Complex.Complex b0)
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanAddAsymmetric a0 GHC.Integer.Type.Integer => Numeric.MixedTypes.AddSub.CanAddAsymmetric (Data.Complex.Complex a0) GHC.Integer.Type.Integer
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanAddAsymmetric a0 GHC.Real.Rational => Numeric.MixedTypes.AddSub.CanAddAsymmetric (Data.Complex.Complex a0) GHC.Real.Rational
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanAddAsymmetric a0 GHC.Types.Double => Numeric.MixedTypes.AddSub.CanAddAsymmetric (Data.Complex.Complex a0) GHC.Types.Double
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanAddAsymmetric a0 GHC.Types.Int => Numeric.MixedTypes.AddSub.CanAddAsymmetric (Data.Complex.Complex a0) GHC.Types.Int
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanSub GHC.Integer.Type.Integer b0 => Numeric.MixedTypes.AddSub.CanSub GHC.Integer.Type.Integer (Data.Complex.Complex b0)
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanSub GHC.Real.Rational b0 => Numeric.MixedTypes.AddSub.CanSub GHC.Real.Rational (Data.Complex.Complex b0)
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanSub GHC.Types.Double b0 => Numeric.MixedTypes.AddSub.CanSub GHC.Types.Double (Data.Complex.Complex b0)
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanSub GHC.Types.Int b0 => Numeric.MixedTypes.AddSub.CanSub GHC.Types.Int (Data.Complex.Complex b0)
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanSub a0 GHC.Integer.Type.Integer => Numeric.MixedTypes.AddSub.CanSub (Data.Complex.Complex a0) GHC.Integer.Type.Integer
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanSub a0 GHC.Real.Rational => Numeric.MixedTypes.AddSub.CanSub (Data.Complex.Complex a0) GHC.Real.Rational
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanSub a0 GHC.Types.Double => Numeric.MixedTypes.AddSub.CanSub (Data.Complex.Complex a0) GHC.Types.Double
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.AddSub.CanSub a0 GHC.Types.Int => Numeric.MixedTypes.AddSub.CanSub (Data.Complex.Complex a0) GHC.Types.Int
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Eq.HasEqAsymmetric GHC.Integer.Type.Integer b0 => Numeric.MixedTypes.Eq.HasEqAsymmetric GHC.Integer.Type.Integer (Data.Complex.Complex b0)
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Eq.HasEqAsymmetric GHC.Real.Rational b0 => Numeric.MixedTypes.Eq.HasEqAsymmetric GHC.Real.Rational (Data.Complex.Complex b0)
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Eq.HasEqAsymmetric GHC.Types.Double b0 => Numeric.MixedTypes.Eq.HasEqAsymmetric GHC.Types.Double (Data.Complex.Complex b0)
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Eq.HasEqAsymmetric GHC.Types.Int b0 => Numeric.MixedTypes.Eq.HasEqAsymmetric GHC.Types.Int (Data.Complex.Complex b0)
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Eq.HasEqAsymmetric a0 GHC.Integer.Type.Integer => Numeric.MixedTypes.Eq.HasEqAsymmetric (Data.Complex.Complex a0) GHC.Integer.Type.Integer
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Eq.HasEqAsymmetric a0 GHC.Real.Rational => Numeric.MixedTypes.Eq.HasEqAsymmetric (Data.Complex.Complex a0) GHC.Real.Rational
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Eq.HasEqAsymmetric a0 GHC.Types.Double => Numeric.MixedTypes.Eq.HasEqAsymmetric (Data.Complex.Complex a0) GHC.Types.Double
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Eq.HasEqAsymmetric a0 GHC.Types.Int => Numeric.MixedTypes.Eq.HasEqAsymmetric (Data.Complex.Complex a0) GHC.Types.Int
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Field.CanDiv a0 GHC.Integer.Type.Integer => Numeric.MixedTypes.Field.CanDiv (Data.Complex.Complex a0) GHC.Integer.Type.Integer
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Field.CanDiv a0 GHC.Real.Rational => Numeric.MixedTypes.Field.CanDiv (Data.Complex.Complex a0) GHC.Real.Rational
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Field.CanDiv a0 GHC.Types.Double => Numeric.MixedTypes.Field.CanDiv (Data.Complex.Complex a0) GHC.Types.Double
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Field.CanDiv a0 GHC.Types.Int => Numeric.MixedTypes.Field.CanDiv (Data.Complex.Complex a0) GHC.Types.Int
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Integer.Type.Integer b0 => Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Integer.Type.Integer (Data.Complex.Complex b0)
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Real.Rational b0 => Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Real.Rational (Data.Complex.Complex b0)
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Types.Double b0 => Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Types.Double (Data.Complex.Complex b0)
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Types.Int b0 => Numeric.MixedTypes.Ring.CanMulAsymmetric GHC.Types.Int (Data.Complex.Complex b0)
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Ring.CanMulAsymmetric a0 GHC.Integer.Type.Integer => Numeric.MixedTypes.Ring.CanMulAsymmetric (Data.Complex.Complex a0) GHC.Integer.Type.Integer
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Ring.CanMulAsymmetric a0 GHC.Real.Rational => Numeric.MixedTypes.Ring.CanMulAsymmetric (Data.Complex.Complex a0) GHC.Real.Rational
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Ring.CanMulAsymmetric a0 GHC.Types.Double => Numeric.MixedTypes.Ring.CanMulAsymmetric (Data.Complex.Complex a0) GHC.Types.Double
+ Numeric.MixedTypes.Complex: instance Numeric.MixedTypes.Ring.CanMulAsymmetric a0 GHC.Types.Int => Numeric.MixedTypes.Ring.CanMulAsymmetric (Data.Complex.Complex a0) GHC.Types.Int
+ Numeric.MixedTypes.Complex: tComplex :: T t -> T (Complex t)
+ Numeric.MixedTypes.Literals: convertExactlyTargetSample :: (ConvertibleExactly t1 t2) => t2 -> t1 -> t2
+ Numeric.MixedTypes.Literals: tMaybe :: T t -> T (Maybe t)

Files

changelog.md view
@@ -6,4 +6,8 @@   * CN, specialisation of CollectErrors to NumErrors   * numerical partial operators (eg division) return a CN type   * instances for Data.Complex-  ++* v 0.2.0.1+  * fix compilation bug in test suite+  * minor doc improvements+  * fix Complex instances of error-throwing division (/!)
mixed-types-num.cabal view
@@ -1,5 +1,5 @@ name:           mixed-types-num-version:        0.2+version:        0.2.0.1 cabal-version:  >= 1.9.2 build-type:     Simple homepage:       https://github.com/michalkonecny/mixed-types-num@@ -16,9 +16,13 @@ Description:     This package provides a version of Prelude where     unary and binary operations such as @not@, @+@, @==@-    have their result type derived from the parameter type(s).+    have their result type derived from the parameter type(s)+    and thus supports mixed-type arithmetic and comparisons.     .     See module "MixedTypesNumPrelude" for further documentation.+    .+    /Ghci 8.0.* fails when loading this package/ due to ghc bug <https://ghc.haskell.org/trac/ghc/ticket/13385#ticket 13385>.+    This bug does not affect ghci 7.10.3 and ghci 8.2.1.  source-repository head   type:     git
src/MixedTypesNumPrelude.hs view
@@ -18,17 +18,17 @@       * Dividing an integer by an integer, giving a rational, wrapped in the CN (ie Collecting NumErrors) monad:        >>> :t let n = 1 :: Integer in n/(n+1)-      CN Rational+      ...CN Rational        >>> :t 1/2-      CN Rational+      ...CN Rational        (Integer literals are always of type @Integer@, not @Num t => t@.)        * Adding an integer and a rational, giving a rational: -      >>> :t (length [x])+1/3-      CN Rational+      >>> :t (length [])+1/3+      ...CN Rational        The @CN@ monad is required because integer division can, in general, fail as it is a partial operation: @@ -40,52 +40,57 @@        When one is certain the division is well defined, one can remove @CN@ in several ways: -      >>> :t (1%2)  -- using Data.Ratio.(%), works only for integers-      Rational+      >>> :t (1%2)+      ...Rational -      >>> :t (1/!2)  -- this works for non-integer division too-      Rational+      Above we use (re-exported) Data.Ratio.(%), which means this trick works only for Integers. -      >>> :t (~!) (1/2) -- ~! removes CN from any type-      Rational+      >>> :t (1/!2)+      ...Rational +      This works also for non-integer division.++      >>> :t (~!) (1/2)+      ...Rational++      The (~!) operator removes CN from any type, throwing an exception if there are collected errors.+       The operator (/!) stands for division which throws an exception is the       denominator is 0.  It "propagates" any potential errors-      from the sub-expressions:+      from the sub-expressions.  For example:        >>> :t 1/!(1 - 1/n)-      CN Rational+      ...CN Rational -      The last example will throw an error exception when evaluated with @n=1@-      but it will not thrown any excetion when @n=0@+      The above expression will throw an error exception when evaluated with @n=1@+      but when @n=0@, it will not throw an excetion but return an error value.        * taking natural, integer and fractional power using the same operator:        >>> :t 2^2-      CN Integer+      ...CN Integer        >>> :t 2.0^(-2)-      CN Rational+      ...CN Rational        >>> :t (double 2)^(1/!2)-      Double+      ...Double -      The following examples require package <https://github.com/michalkonecny/aern2/aern2-real aern2-real>:+      The following examples require package <https://github.com/michalkonecny/aern2 aern2-real>:        >>> :t 2^(1/2)-      CauchyRealCN+      ...CauchyRealCN        >>> :t pi-      CauchyReal+      ...CauchyReal        >>> :t sqrt 2-      CauchyRealCN+      ...CauchyRealCN -      * comparing an integer with an (exact) real number, giving a seqeunce of @Maybe Bool@:+      * comparing an integer with an (exact) real number, giving a sequence of @Maybe Bool@: -      @-      if x < 0 then -x else x-      @+      >>> let abs2 x = if x < 0 then -x else x in (abs2 (pi - pi)) ? (bitsS 100)+      [0 ± <2^(-102)]        In the last example, @if@ is overloaded so that it works for conditions       of other types than @Bool@.  Here the condition has the type @Sequence (Maybe Bool)@.@@ -98,9 +103,7 @@     and the result type is given by associated     type families. For example: -    @-    (+) :: (CanAddAsymmetric t1 t2) => t1 -> t2 -> AddType t1 t2-    @+    > (+) :: (CanAddAsymmetric t1 t2) => t1 -> t2 -> AddType t1 t2      The type constraint @CanAdd t1 t2@ implies both     @CanAddAsymmetric t1 t2@ and @CanAddAsymmetric t2 t1@.@@ -123,15 +126,13 @@      * Inferred types can be very large. Eg for @f a b c = sqrt (a + b * c + 1)@ the inferred type is: -      @-      f: (CanMulAsymmetric t1 t2, CanAddAsymmetric t4 (MulType t1 t2),-          CanAddAsymmetric (AddType t4 (MulType t1 t2)) Integer,-          CanSqrt (AddType (AddType t4 (MulType t1 t2)) Integer)) =>-         t4-         -> t1-         -> t2-         -> SqrtType (AddType (AddType t4 (MulType t1 t2)) Integer)-      @+    >  f: (CanMulAsymmetric t1 t2, CanAddAsymmetric t4 (MulType t1 t2),+    >      CanAddAsymmetric (AddType t4 (MulType t1 t2)) Integer,+    >      CanSqrt (AddType (AddType t4 (MulType t1 t2)) Integer)) =>+    >     t4+    >     -> t1+    >     -> t2+    >     -> SqrtType (AddType (AddType t4 (MulType t1 t2)) Integer)      * Due to limitations of some versions of ghc, type inferrence sometimes fails.       Eg @add1 = (+ 1)@ fails (eg with ghc 8.0.2) unless we explicitly declare the type@@ -163,10 +164,12 @@   module Numeric.MixedTypes.Round,   module Numeric.MixedTypes.Ring,   module Numeric.MixedTypes.Field,-  (%),   module Numeric.MixedTypes.Elementary,+  module Numeric.MixedTypes.Complex,   module Numeric.CollectErrors,-  module Utils.TH.DeclForTypes+  module Utils.TH.DeclForTypes,+  -- * Re-export for convenient Rational literals+  (%) ) where @@ -184,4 +187,4 @@ import Numeric.MixedTypes.Ring import Numeric.MixedTypes.Field import Numeric.MixedTypes.Elementary-import Numeric.MixedTypes.Complex ()+import Numeric.MixedTypes.Complex
src/Numeric/MixedTypes/Complex.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE TemplateHaskell #-} {-|     Module      :  Numeric.MixedType.Complex     Description :  Instances for Data.Complex@@ -13,6 +14,7 @@  module Numeric.MixedTypes.Complex (+  tComplex ) where @@ -20,6 +22,8 @@ -- import qualified Prelude as P -- import Text.Printf +import Utils.TH.DeclForTypes+ import Data.Complex  import Numeric.MixedTypes.Literals@@ -31,6 +35,9 @@ import Numeric.MixedTypes.Field import Numeric.MixedTypes.Elementary +tComplex :: T t -> T (Complex t)+tComplex (T tName) = T ("(Complex " ++ tName ++ ")")+ instance (ConvertibleExactly Integer t) => (ConvertibleExactly Integer (Complex t))   where   safeConvertExactly n =@@ -67,38 +74,6 @@   type EqCompareType (Complex a) (Complex b) = EqCompareType a b   equalTo (a1 :+ i1) (a2 :+ i2) = (a1 == a2) && (i1 == i2) -instance (HasEqAsymmetric Integer b) => HasEqAsymmetric Integer (Complex b) where-  type EqCompareType Integer (Complex b) = EqCompareType Integer b-  equalTo n (a2 :+ i2) = (n == a2) && (0 == i2)--instance (HasEqAsymmetric a Integer) => HasEqAsymmetric (Complex a) Integer where-  type EqCompareType (Complex a) Integer = EqCompareType a Integer-  equalTo (a1 :+ i1) n = (a1 == n) && (i1 == 0)--instance (HasEqAsymmetric Rational b) => HasEqAsymmetric Rational (Complex b) where-  type EqCompareType Rational (Complex b) = EqCompareType Rational b-  equalTo n (a2 :+ i2) = (n == a2) && (0.0 == i2)--instance (HasEqAsymmetric a Rational) => HasEqAsymmetric (Complex a) Rational where-  type EqCompareType (Complex a) Rational = EqCompareType a Rational-  equalTo (a1 :+ i1) n = (a1 == n) && (i1 == 0.0)--instance (HasEqAsymmetric Int b) => HasEqAsymmetric Int (Complex b) where-  type EqCompareType Int (Complex b) = EqCompareType Int b-  equalTo n (a2 :+ i2) = (n == a2) && ((int 0) == i2)--instance (HasEqAsymmetric a Int) => HasEqAsymmetric (Complex a) Int where-  type EqCompareType (Complex a) Int = EqCompareType a Int-  equalTo (a1 :+ i1) n = (a1 == n) && (i1 == (int 0))--instance (HasEqAsymmetric Double b) => HasEqAsymmetric Double (Complex b) where-  type EqCompareType Double (Complex b) = EqCompareType Double b-  equalTo n (a2 :+ i2) = (n == a2) && ((double 0) == i2)--instance (HasEqAsymmetric a Double) => HasEqAsymmetric (Complex a) Double where-  type EqCompareType (Complex a) Double = EqCompareType a Double-  equalTo (a1 :+ i1) n = (a1 == n) && (i1 == (double 0))- instance (CanTestInteger t, CanTestZero t) => CanTestInteger (Complex t) where   certainlyNotInteger (a :+ i) =     certainlyNotInteger a || isCertainlyNonZero i@@ -115,74 +90,10 @@   type AddType (Complex a) (Complex b) = Complex (AddType a b)   add (a1 :+ i1) (a2 :+ i2) = (a1 + a2) :+ (i1 + i2) -instance (CanAddAsymmetric Integer b) => CanAddAsymmetric Integer (Complex b) where-  type AddType Integer (Complex b) = Complex (AddType Integer b)-  add n (a2 :+ i2) = (n + a2) :+ (0 + i2)--instance (CanAddAsymmetric a Integer) => CanAddAsymmetric (Complex a) Integer where-  type AddType (Complex a) Integer = Complex (AddType a Integer)-  add (a1 :+ i1) n = (a1 + n) :+ (i1 + 0)--instance (CanAddAsymmetric Rational b) => CanAddAsymmetric Rational (Complex b) where-  type AddType Rational (Complex b) = Complex (AddType Rational b)-  add n (a2 :+ i2) = (n + a2) :+ (0.0 + i2)--instance (CanAddAsymmetric a Rational) => CanAddAsymmetric (Complex a) Rational where-  type AddType (Complex a) Rational = Complex (AddType a Rational)-  add (a1 :+ i1) n = (a1 + n) :+ (i1 + 0.0)--instance (CanAddAsymmetric Int b) => CanAddAsymmetric Int (Complex b) where-  type AddType Int (Complex b) = Complex (AddType Int b)-  add n (a2 :+ i2) = (n + a2) :+ ((int 0) + i2)--instance (CanAddAsymmetric a Int) => CanAddAsymmetric (Complex a) Int where-  type AddType (Complex a) Int = Complex (AddType a Int)-  add (a1 :+ i1) n = (a1 + n) :+ (i1 + (int 0))--instance (CanAddAsymmetric Double b) => CanAddAsymmetric Double (Complex b) where-  type AddType Double (Complex b) = Complex (AddType Double b)-  add n (a2 :+ i2) = (n + a2) :+ ((double 0) + i2)--instance (CanAddAsymmetric a Double) => CanAddAsymmetric (Complex a) Double where-  type AddType (Complex a) Double = Complex (AddType a Double)-  add (a1 :+ i1) n = (a1 + n) :+ (i1 + (double 0))- instance (CanSub a b) => CanSub (Complex a) (Complex b) where   type SubType (Complex a) (Complex b) = Complex (SubType a b)   sub (a1 :+ i1) (a2 :+ i2) = (a1 - a2) :+ (i1 - i2) -instance (CanSub Integer b) => CanSub Integer (Complex b) where-  type SubType Integer (Complex b) = Complex (SubType Integer b)-  sub n (a2 :+ i2) = (n - a2) :+ (0 - i2)--instance (CanSub a Integer) => CanSub (Complex a) Integer where-  type SubType (Complex a) Integer = Complex (SubType a Integer)-  sub (a1 :+ i1) n = (a1 - n) :+ (i1 - 0)--instance (CanSub Rational b) => CanSub Rational (Complex b) where-  type SubType Rational (Complex b) = Complex (SubType Rational b)-  sub n (a2 :+ i2) = (n - a2) :+ (0.0 - i2)--instance (CanSub a Rational) => CanSub (Complex a) Rational where-  type SubType (Complex a) Rational = Complex (SubType a Rational)-  sub (a1 :+ i1) n = (a1 - n) :+ (i1 - 0.0)--instance (CanSub Int b) => CanSub Int (Complex b) where-  type SubType Int (Complex b) = Complex (SubType Int b)-  sub n (a2 :+ i2) = (n - a2) :+ ((int 0) - i2)--instance (CanSub a Int) => CanSub (Complex a) Int where-  type SubType (Complex a) Int = Complex (SubType a Int)-  sub (a1 :+ i1) n = (a1 - n) :+ (i1 - (int 0))--instance (CanSub Double b) => CanSub Double (Complex b) where-  type SubType Double (Complex b) = Complex (SubType Double b)-  sub n (a2 :+ i2) = (n - a2) :+ ((double 0) - i2)--instance (CanSub a Double) => CanSub (Complex a) Double where-  type SubType (Complex a) Double = Complex (SubType a Double)-  sub (a1 :+ i1) n = (a1 - n) :+ (i1 - (double 0))- instance   (CanMulAsymmetric a b   , CanAddSameType (MulType a b), CanSubSameType (MulType a b))@@ -194,54 +105,6 @@     (a1*a2 - i1*i2) :+ (a1*i2 + i1*a2)  instance-  (CanMulAsymmetric Integer b) => CanMulAsymmetric Integer (Complex b)-  where-  type MulType Integer (Complex b) = Complex (MulType Integer b)-  mul n (a2 :+ i2) = (n*a2) :+ (n*i2)--instance-  (CanMulAsymmetric a Integer) => CanMulAsymmetric (Complex a) Integer-  where-  type MulType (Complex a) Integer = Complex (MulType a Integer)-  mul (a1 :+ i1) n = (a1*n) :+ (i1*n)--instance-  (CanMulAsymmetric Int b) => CanMulAsymmetric Int (Complex b)-  where-  type MulType Int (Complex b) = Complex (MulType Int b)-  mul n (a2 :+ i2) = (n*a2) :+ (n*i2)--instance-  (CanMulAsymmetric a Int) => CanMulAsymmetric (Complex a) Int-  where-  type MulType (Complex a) Int = Complex (MulType a Int)-  mul (a1 :+ i1) n = (a1*n) :+ (i1*n)--instance-  (CanMulAsymmetric Rational b) => CanMulAsymmetric Rational (Complex b)-  where-  type MulType Rational (Complex b) = Complex (MulType Rational b)-  mul n (a2 :+ i2) = (n*a2) :+ (n*i2)--instance-  (CanMulAsymmetric a Rational) => CanMulAsymmetric (Complex a) Rational-  where-  type MulType (Complex a) Rational = Complex (MulType a Rational)-  mul (a1 :+ i1) n = (a1*n) :+ (i1*n)--instance-  (CanMulAsymmetric Double b) => CanMulAsymmetric Double (Complex b)-  where-  type MulType Double (Complex b) = Complex (MulType Double b)-  mul n (a2 :+ i2) = (n*a2) :+ (n*i2)--instance-  (CanMulAsymmetric a Double) => CanMulAsymmetric (Complex a) Double-  where-  type MulType (Complex a) Double = Complex (MulType a Double)-  mul (a1 :+ i1) n = (a1*n) :+ (i1*n)--instance   (CanMulAsymmetric a b   , CanAddSameType (MulType a b), CanSubSameType (MulType a b)   , CanMulAsymmetric b b, CanAddSameType (MulType b b)@@ -253,78 +116,10 @@   divide (a1 :+ i1) (a2 :+ i2) =     let d = a2*a2 + i2*i2 in     ((a1*a2 + i1*i2)/d) :+ ((i1*a2-a1*i2)/d)--instance-  (CanMulAsymmetric Integer b-  , CanMulAsymmetric b b, CanAddSameType (MulType b b)-  , CanDiv (MulType Integer b) (MulType b b))-  =>-  CanDiv Integer (Complex b)-  where-  type DivType Integer (Complex b) = Complex (DivType (MulType Integer b) (MulType b b))-  divide n (a2 :+ i2) =-    let d = a2*a2 + i2*i2 in-    ((n*a2)/d) :+ (((-n)*i2)/d)--instance-  (CanMulAsymmetric Rational b-  , CanMulAsymmetric b b, CanAddSameType (MulType b b)-  , CanDiv (MulType Rational b) (MulType b b))-  =>-  CanDiv Rational (Complex b)-  where-  type DivType Rational (Complex b) = Complex (DivType (MulType Rational b) (MulType b b))-  divide n (a2 :+ i2) =-    let d = a2*a2 + i2*i2 in-    ((n*a2)/d) :+ (((-n)*i2)/d)--instance-  (CanMulAsymmetric Int b-  , CanMulAsymmetric b b, CanAddSameType (MulType b b)-  , CanDiv (MulType Int b) (MulType b b))-  =>-  CanDiv Int (Complex b)-  where-  type DivType Int (Complex b) = Complex (DivType (MulType Int b) (MulType b b))-  divide n (a2 :+ i2) =-    let d = a2*a2 + i2*i2 in-    ((n*a2)/d) :+ (((-n)*i2)/d)--instance-  (CanMulAsymmetric Double b-  , CanMulAsymmetric b b, CanAddSameType (MulType b b)-  , CanDiv (MulType Double b) (MulType b b))-  =>-  CanDiv Double (Complex b)-  where-  type DivType Double (Complex b) = Complex (DivType (MulType Double b) (MulType b b))-  divide n (a2 :+ i2) =+  type DivTypeNoCN (Complex a) (Complex b) = Complex (DivTypeNoCN (MulType a b) (MulType b b))+  divideNoCN (a1 :+ i1) (a2 :+ i2) =     let d = a2*a2 + i2*i2 in-    ((n*a2)/d) :+ (((-n)*i2)/d)--instance-  (CanDiv a Integer) => CanDiv (Complex a) Integer-  where-  type DivType (Complex a) Integer = Complex (DivType a Integer)-  divide (a1 :+ i1) n = (a1/n) :+ (i1/n)--instance-  (CanDiv a Int) => CanDiv (Complex a) Int-  where-  type DivType (Complex a) Int = Complex (DivType a Int)-  divide (a1 :+ i1) n = (a1/n) :+ (i1/n)--instance-  (CanDiv a Rational) => CanDiv (Complex a) Rational-  where-  type DivType (Complex a) Rational = Complex (DivType a Rational)-  divide (a1 :+ i1) n = (a1/n) :+ (i1/n)--instance-  (CanDiv a Double) => CanDiv (Complex a) Double-  where-  type DivType (Complex a) Double = Complex (DivType a Double)-  divide (a1 :+ i1) n = (a1/n) :+ (i1/n)+    ((a1*a2 + i1*i2)/!d) :+ ((i1*a2-a1*i2)/!d)  instance   (CanMulAsymmetric t t@@ -347,3 +142,68 @@   exp (a :+ i) =     let ea = exp a in     (ea * cos i) :+ (ea * sin i)++$(declForTypes+  [[t| Integer |], [t| Int |], [t| Rational |], [t| Double |]]+  (\ t -> [d|++    instance (HasEqAsymmetric $t b) => HasEqAsymmetric $t (Complex b) where+      type EqCompareType $t (Complex b) = EqCompareType $t b+      equalTo n (a2 :+ i2) = (n == a2) && (convertExactlyTargetSample n 0 == i2)++    instance (HasEqAsymmetric a $t) => HasEqAsymmetric (Complex a) $t where+      type EqCompareType (Complex a) $t = EqCompareType a $t+      equalTo (a1 :+ i1) n = (a1 == n) && (i1 == convertExactlyTargetSample n 0)++    instance (CanAddAsymmetric $t b) => CanAddAsymmetric $t (Complex b) where+      type AddType $t (Complex b) = Complex (AddType $t b)+      add n (a2 :+ i2) = (n + a2) :+ (convertExactlyTargetSample n 0 + i2)++    instance (CanAddAsymmetric a $t) => CanAddAsymmetric (Complex a) $t where+      type AddType (Complex a) $t = Complex (AddType a $t)+      add (a1 :+ i1) n = (a1 + n) :+ (i1 + (convertExactlyTargetSample n 0))++    instance (CanSub $t b) => CanSub $t (Complex b) where+      type SubType $t (Complex b) = Complex (SubType $t b)+      sub n (a2 :+ i2) = (n - a2) :+ (convertExactlyTargetSample n 0 - i2)++    instance (CanSub a $t) => CanSub (Complex a) $t where+      type SubType (Complex a) $t = Complex (SubType a $t)+      sub (a1 :+ i1) n = (a1 - n) :+ (i1 - (convertExactlyTargetSample n 0))++    instance+      (CanMulAsymmetric $t b) => CanMulAsymmetric $t (Complex b)+      where+      type MulType $t (Complex b) = Complex (MulType $t b)+      mul n (a2 :+ i2) = (n*a2) :+ (n*i2)++    instance+      (CanMulAsymmetric a $t) => CanMulAsymmetric (Complex a) $t+      where+      type MulType (Complex a) $t = Complex (MulType a $t)+      mul (a1 :+ i1) n = (a1*n) :+ (i1*n)++    instance+      (CanMulAsymmetric $t b+      , CanMulAsymmetric b b, CanAddSameType (MulType b b)+      , CanDiv (MulType $t b) (MulType b b))+      =>+      CanDiv $t (Complex b)+      where+      type DivType $t (Complex b) = Complex (DivType (MulType $t b) (MulType b b))+      divide n (a2 :+ i2) =+        let d = a2*a2 + i2*i2 in+        ((n*a2)/d) :+ (((-n)*i2)/d)+      type DivTypeNoCN $t (Complex b) = Complex (DivTypeNoCN (MulType $t b) (MulType b b))+      divideNoCN n (a2 :+ i2) =+        let d = a2*a2 + i2*i2 in+        ((n*a2)/!d) :+ (((-n)*i2)/!d)++    instance+      (CanDiv a $t) => CanDiv (Complex a) $t+      where+      type DivType (Complex a) $t = Complex (DivType a $t)+      divide (a1 :+ i1) n = (a1/n) :+ (i1/n)+      type DivTypeNoCN (Complex a) $t = Complex (DivTypeNoCN a $t)+      divideNoCN (a1 :+ i1) n = (a1/!n) :+ (i1/!n)+  |]))
src/Numeric/MixedTypes/Literals.hs view
@@ -44,13 +44,13 @@   , CanBeInt, int, ints   , CanBeRational, rational, rationals, HasRationals, fromRational_   , CanBeDouble, double, doubles-  , ConvertibleExactly(..), convertExactly+  , ConvertibleExactly(..), convertExactly, convertExactlyTargetSample   , ConvertResult, ConvertError, convError   -- * Generic list index   , (!!), specCanBeInteger, printArgsIfFails2   -- * Testing support functions   , T(..), tInt, tInteger, tRational, tDouble-  , tBool, tMaybeBool, tMaybeMaybeBool+  , tBool, tMaybe, tMaybeBool, tMaybeMaybeBool   -- * Helper functions   , convertFirst, convertSecond   , convertFirstUsing, convertSecondUsing@@ -177,6 +177,9 @@     Right v -> v     Left err -> error (show err) +convertExactlyTargetSample :: (ConvertibleExactly t1 t2) => t2 -> t1 -> t2+convertExactlyTargetSample _sample = convertExactly+ instance ConvertibleExactly Integer Integer -- use CVT instance by default instance ConvertibleExactly Int Integer @@ -233,11 +236,14 @@ tBool :: T Bool tBool = T "Bool" +tMaybe :: T t -> T (Maybe t)+tMaybe (T tName) = T ("(Maybe " ++ tName ++ ")")+ tMaybeBool :: T (Maybe Bool)-tMaybeBool = T "(Maybe Bool)"+tMaybeBool = tMaybe tBool  tMaybeMaybeBool :: T (Maybe (Maybe Bool))-tMaybeMaybeBool = T "(Maybe (Maybe Bool))"+tMaybeMaybeBool = tMaybe tMaybeBool  {---- Auxiliary functions ----} 
test/Numeric/MixedTypes/AddSubSpec.hs view
@@ -11,7 +11,7 @@  module Numeric.MixedTypes.AddSubSpec (spec) where -import Numeric.MixedTypes+import MixedTypesNumPrelude  import Test.Hspec @@ -20,13 +20,18 @@   specCanAddNotMixed tInt   specCanAddNotMixed tInteger   specCanAddNotMixed tRational+  -- specCanAddNotMixed (tComplex tRational)   specCanAdd tInt tInteger tRational   specCanAdd tInteger tRational tInt+  -- specCanAdd tInteger tRational (tComplex tRational)   specCanAddSameType tInteger   specCanAddSameType tRational+  -- specCanAddSameType (tComplex tRational)   specCanSubNotMixed tInt   specCanSubNotMixed tInteger   specCanSubNotMixed tRational+  -- specCanSubNotMixed (tComplex tRational)   specCanSub tInt tInteger   specCanSub tInt tRational   specCanSub tInteger tRational+  -- specCanSub tInteger (tComplex tRational)
test/Numeric/MixedTypes/BoolSpec.hs view
@@ -11,7 +11,7 @@  module Numeric.MixedTypes.BoolSpec (spec) where -import Numeric.MixedTypes+import MixedTypesNumPrelude  import Test.Hspec 
test/Numeric/MixedTypes/EqOrdSpec.hs view
@@ -11,7 +11,7 @@  module Numeric.MixedTypes.EqOrdSpec (spec) where -import Numeric.MixedTypes+import MixedTypesNumPrelude  import Test.Hspec 
test/Numeric/MixedTypes/FieldSpec.hs view
@@ -11,7 +11,7 @@  module Numeric.MixedTypes.FieldSpec (spec) where -import Numeric.MixedTypes+import MixedTypesNumPrelude  import Test.Hspec 
test/Numeric/MixedTypes/LiteralsSpec.hs view
@@ -11,7 +11,7 @@  module Numeric.MixedTypes.LiteralsSpec (spec) where -import Numeric.MixedTypes+import MixedTypesNumPrelude import qualified Prelude as P  -- import Text.Printf
test/Numeric/MixedTypes/MinMaxAbsSpec.hs view
@@ -11,7 +11,7 @@  module Numeric.MixedTypes.MinMaxAbsSpec (spec) where -import Numeric.MixedTypes+import MixedTypesNumPrelude  import Test.Hspec 
test/Numeric/MixedTypes/RingSpec.hs view
@@ -11,7 +11,7 @@  module Numeric.MixedTypes.RingSpec (spec) where -import Numeric.MixedTypes+import MixedTypesNumPrelude  import Test.Hspec 
test/Numeric/MixedTypes/RoundSpec.hs view
@@ -11,7 +11,7 @@  module Numeric.MixedTypes.RoundSpec (spec) where -import Numeric.MixedTypes+import MixedTypesNumPrelude  import Test.Hspec