packages feed

mixed-types-num 0.6.0 → 0.6.1

raw patch · 3 files changed

+19/−16 lines, 3 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Numeric.MixedTypes.Literals: instance (Numeric.MixedTypes.Literals.HasIntegers t, GHC.Base.Monoid es) => Numeric.MixedTypes.Literals.ConvertibleExactly (Control.CollectErrors.Type.CollectErrors es t, GHC.Num.Integer.Integer) (Control.CollectErrors.Type.CollectErrors es t)
- Numeric.MixedTypes.Literals: instance (Numeric.MixedTypes.Literals.HasRationals t, GHC.Base.Monoid es) => Numeric.MixedTypes.Literals.ConvertibleExactly (Control.CollectErrors.Type.CollectErrors es t, GHC.Real.Rational) (Control.CollectErrors.Type.CollectErrors es t)
- Numeric.MixedTypes.Literals: instance Numeric.MixedTypes.Literals.ConvertibleExactly (GHC.Num.Integer.Integer, GHC.Num.Integer.Integer) GHC.Num.Integer.Integer
- Numeric.MixedTypes.Literals: instance Numeric.MixedTypes.Literals.ConvertibleExactly (GHC.Real.Rational, GHC.Num.Integer.Integer) GHC.Real.Rational
- Numeric.MixedTypes.Literals: instance Numeric.MixedTypes.Literals.ConvertibleExactly (GHC.Real.Rational, GHC.Real.Rational) GHC.Real.Rational
+ Numeric.MixedTypes.Literals: WithSample :: s -> t -> WithSample s t
+ Numeric.MixedTypes.Literals: data WithSample s t
+ Numeric.MixedTypes.Literals: instance (Numeric.MixedTypes.Literals.HasIntegers t, GHC.Base.Monoid es) => Numeric.MixedTypes.Literals.ConvertibleExactly (Numeric.MixedTypes.Literals.WithSample (Control.CollectErrors.Type.CollectErrors es t) GHC.Num.Integer.Integer) (Control.CollectErrors.Type.CollectErrors es t)
+ Numeric.MixedTypes.Literals: instance (Numeric.MixedTypes.Literals.HasRationals t, GHC.Base.Monoid es) => Numeric.MixedTypes.Literals.ConvertibleExactly (Numeric.MixedTypes.Literals.WithSample (Control.CollectErrors.Type.CollectErrors es t) GHC.Real.Rational) (Control.CollectErrors.Type.CollectErrors es t)
+ Numeric.MixedTypes.Literals: instance Numeric.MixedTypes.Literals.ConvertibleExactly (Numeric.MixedTypes.Literals.WithSample GHC.Num.Integer.Integer GHC.Num.Integer.Integer) GHC.Num.Integer.Integer
+ Numeric.MixedTypes.Literals: instance Numeric.MixedTypes.Literals.ConvertibleExactly (Numeric.MixedTypes.Literals.WithSample GHC.Real.Rational GHC.Num.Integer.Integer) GHC.Real.Rational
+ Numeric.MixedTypes.Literals: instance Numeric.MixedTypes.Literals.ConvertibleExactly (Numeric.MixedTypes.Literals.WithSample GHC.Real.Rational GHC.Real.Rational) GHC.Real.Rational
- Numeric.MixedTypes.Literals: type HasIntegersWithSample t = ConvertibleExactly (t, Integer) t
+ Numeric.MixedTypes.Literals: type HasIntegersWithSample t = ConvertibleExactly (WithSample t Integer) t
- Numeric.MixedTypes.Literals: type HasRationalsWithSample t = ConvertibleExactly (t, Rational) t
+ Numeric.MixedTypes.Literals: type HasRationalsWithSample t = ConvertibleExactly (WithSample t Rational) t

Files

changelog.md view
@@ -1,6 +1,6 @@ # mixed-types-num change log -* v 0.6.0 2024-09-21+* v 0.6.1 2024-09-21   * Ring now requires HasIntegersWithSample instead of HasIntegers   * Field now requires HasRationalsWithSample instead of HasRationals * v 0.5.12 2023-08-14
mixed-types-num.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           mixed-types-num-version:        0.6.0+version:        0.6.1 synopsis:       Alternative Prelude with numeric and logic expressions typed bottom-up description:    Please see the README on GitHub at <https://github.com/michalkonecny/mixed-types-num#readme> category:       Math
src/Numeric/MixedTypes/Literals.hs view
@@ -40,6 +40,7 @@   -- * Generalised if-then-else   , HasIfThenElse(..), HasIfThenElseSameType   -- * Convenient conversions+  , WithSample(..)   , CanBeInteger, integer, integers, HasIntegers, fromInteger_, HasIntegersWithSample, fromIntegerWithSample   , CanBeInt, int, ints   , CanBeRational, rational, rationals, HasRationals, fromRational_, HasRationalsWithSample, fromRationalWithSample@@ -133,9 +134,11 @@ fromInteger_ :: (HasIntegers t) => Integer -> t fromInteger_ = convertExactly -type HasIntegersWithSample t = ConvertibleExactly (t, Integer) t+data WithSample s t = WithSample s t++type HasIntegersWithSample t = ConvertibleExactly (WithSample t Integer) t fromIntegerWithSample :: (HasIntegersWithSample t) => t -> Integer -> t-fromIntegerWithSample sampleT n = convertExactly (sampleT, n)+fromIntegerWithSample sampleT n = convertExactly (WithSample sampleT n)  (!!) :: (CanBeInteger n) => [a] -> n -> a list !! ix = List.genericIndex list (integer ix)@@ -194,9 +197,9 @@ fromRational_ :: (HasRationals t) => Rational -> t fromRational_ = convertExactly -type HasRationalsWithSample t = ConvertibleExactly (t, Rational) t+type HasRationalsWithSample t = ConvertibleExactly (WithSample t Rational) t fromRationalWithSample :: (HasRationalsWithSample t) => t -> Rational -> t-fromRationalWithSample sampleT q = convertExactly (sampleT, q)+fromRationalWithSample sampleT q = convertExactly (WithSample sampleT q)  type CanBeDouble t = Convertible t Double double :: (CanBeDouble t) => t -> Double@@ -229,8 +232,8 @@ instance ConvertibleExactly Int Integer  -- HasIntegersWithSample Integer-instance ConvertibleExactly (Integer, Integer) Integer where-  safeConvertExactly (_sample, value) = safeConvert value+instance ConvertibleExactly (WithSample Integer Integer) Integer where+  safeConvertExactly (WithSample _ value) = safeConvert value  -- CanBeInt Int instance ConvertibleExactly Int Int where@@ -247,12 +250,12 @@ instance ConvertibleExactly Integer Rational  -- HasIntegersWithSample Rational-instance ConvertibleExactly (Rational, Integer) Rational where-  safeConvertExactly (_sample, value) = safeConvert value+instance ConvertibleExactly (WithSample Rational Integer) Rational where+  safeConvertExactly (WithSample _sample value) = safeConvert value  -- HasRationalsWithSample Rational-instance ConvertibleExactly (Rational, Rational) Rational where-  safeConvertExactly (_sample, value) = safeConvertExactly value+instance ConvertibleExactly (WithSample Rational Rational) Rational where+  safeConvertExactly (WithSample _ value) = safeConvertExactly value  -- HasIntegers Double instance ConvertibleExactly Integer Double where@@ -350,13 +353,13 @@  instance (HasIntegers t, Monoid es) =>    -- HasIntegersWithSample (CollectErrors es t)-  ConvertibleExactly (CollectErrors es t, Integer) (CollectErrors es t) where-  safeConvertExactly (_sample, value) = fmap pure $ safeConvertExactly value+  ConvertibleExactly (WithSample (CollectErrors es t) Integer) (CollectErrors es t) where+  safeConvertExactly (WithSample _ value) = fmap pure $ safeConvertExactly value  instance (HasRationals t, Monoid es) =>      -- HasRationalsWithSample (CollectErrors es t)-  ConvertibleExactly (CollectErrors es t, Rational) (CollectErrors es t) where-  safeConvertExactly (_sample, value) = fmap pure $ safeConvertExactly value+  ConvertibleExactly (WithSample (CollectErrors es t) Rational) (CollectErrors es t) where+  safeConvertExactly (WithSample _sample value) = fmap pure $ safeConvertExactly value   $(declForTypes