mixed-types-num 0.3.0.1 → 0.3.1
raw patch · 5 files changed
+27/−6 lines, 5 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
+ Numeric.MixedTypes.Literals: drop :: (CanBeInteger n) => n -> [a] -> [a]
+ Numeric.MixedTypes.Literals: length :: (Foldable t) => t a -> Integer
+ Numeric.MixedTypes.Literals: replicate :: (CanBeInteger n) => n -> a -> [a]
+ Numeric.MixedTypes.Literals: splitAt :: (CanBeInteger n) => n -> [a] -> ([a], [a])
+ Numeric.MixedTypes.Literals: take :: (CanBeInteger n) => n -> [a] -> [a]
- Numeric.MixedTypes.Literals: (!!) :: (CanBeInteger t) => [a] -> t -> a
+ Numeric.MixedTypes.Literals: (!!) :: (CanBeInteger n) => [a] -> n -> a
- Numeric.MixedTypes.Ring: type CanAddSubMulBy t s = (CanAddThis t s, CanSubThis t s, CanMulBy t s)
+ Numeric.MixedTypes.Ring: type CanAddSubMulBy t s = (CanAddThis t s, CanSubThis t s, CanSub s t, SubType s t ~ t, CanMulBy t s)
Files
- changelog.md +3/−0
- mixed-types-num.cabal +1/−1
- src/Numeric/MixedTypes/Literals.hs +20/−3
- src/Numeric/MixedTypes/PreludeHiding.hs +2/−1
- src/Numeric/MixedTypes/Ring.hs +1/−1
changelog.md view
@@ -1,3 +1,6 @@+* v 0.3.1 2017-08-15+ * provided compatible versions of take, drop, length, replicate, splitAt+ * v 0.3.0.1 2017-08-01 * improve package documentation in module MixedTypesNumPrelude
mixed-types-num.cabal view
@@ -1,5 +1,5 @@ name: mixed-types-num-version: 0.3.0.1+version: 0.3.1 cabal-version: >= 1.9.2 build-type: Simple homepage: https://github.com/michalkonecny/mixed-types-num
src/Numeric/MixedTypes/Literals.hs view
@@ -46,11 +46,13 @@ , CanBeDouble, double, doubles , ConvertibleExactly(..), convertExactly, convertExactlyTargetSample , ConvertResult, ConvertError, convError- -- * Generic list index- , (!!), specCanBeInteger, printArgsIfFails2+ -- * Prelude List operations versions without Int+ , (!!), length, replicate, take, drop, splitAt -- * Testing support functions , T(..), tInt, tInteger, tRational, tDouble , tBool, tMaybe, tMaybeBool, tMaybeMaybeBool+ , specCanBeInteger+ , printArgsIfFails2 -- * Helper functions , convertFirst, convertSecond , convertFirstUsing, convertSecondUsing@@ -118,9 +120,24 @@ fromInteger_ :: (HasIntegers t) => Integer -> t fromInteger_ = convertExactly -(!!) :: (CanBeInteger t) => [a] -> t -> a+(!!) :: (CanBeInteger n) => [a] -> n -> a list !! ix = List.genericIndex list (integer ix) -- list !! ix = List.genericIndex list (P.max 0 ((integer ix) P.- 1)) -- deliberately wrong - test the test!++length :: (Foldable t) => t a -> Integer+length = integer . P.length++replicate :: (CanBeInteger n) => n -> a -> [a]+replicate = P.replicate . int . integer++take :: (CanBeInteger n) => n -> [a] -> [a]+take = P.take . int . integer++drop :: (CanBeInteger n) => n -> [a] -> [a]+drop = P.drop . int . integer++splitAt :: (CanBeInteger n) => n -> [a] -> ([a],[a])+splitAt = P.splitAt . int . integer {-| HSpec properties that each implementation of CanBeInteger should satisfy.
src/Numeric/MixedTypes/PreludeHiding.hs view
@@ -18,7 +18,8 @@ import Prelude hiding (- fromInteger, fromRational, (!!)+ fromInteger, fromRational+ , (!!), length, replicate, take, drop, splitAt , Eq(..), Ord(..), Num(..), Fractional(..), RealFrac(..), Floating(..) , not, (&&), (||), and, or , (^), (^^)
src/Numeric/MixedTypes/Ring.hs view
@@ -53,7 +53,7 @@ {----- Ring -----} type CanAddSubMulBy t s =- (CanAddThis t s, CanSubThis t s, CanMulBy t s)+ (CanAddThis t s, CanSubThis t s, CanSub s t, SubType s t ~ t, CanMulBy t s) type RingPre t = (CanNegSameType t, CanAddSameType t, CanSubSameType t, CanMulSameType t,