generic-random 0.1.0.0 → 0.1.1.0
raw patch · 4 files changed
+13/−16 lines, 4 filesdep ~basePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base
API changes (from Hackage documentation)
- Data.Random.Generics: Alias :: !(m a -> m b) -> Alias m
- Data.Random.Generics.Internal.Oracle: instance GHC.Generics.Constructor Data.Random.Generics.Internal.Oracle.C1_0AC
- Data.Random.Generics.Internal.Oracle: instance GHC.Generics.Constructor Data.Random.Generics.Internal.Oracle.C1_0Aliased
- Data.Random.Generics.Internal.Oracle: instance GHC.Generics.Constructor Data.Random.Generics.Internal.Oracle.C1_0C
- Data.Random.Generics.Internal.Oracle: instance GHC.Generics.Datatype Data.Random.Generics.Internal.Oracle.D1AC
- Data.Random.Generics.Internal.Oracle: instance GHC.Generics.Datatype Data.Random.Generics.Internal.Oracle.D1Aliased
- Data.Random.Generics.Internal.Oracle: instance GHC.Generics.Datatype Data.Random.Generics.Internal.Oracle.D1C
- Data.Random.Generics.Internal.Types: Alias :: !(m a -> m b) -> Alias m
- Data.Random.Generics.Internal.Types: SomeData :: m a -> SomeData m
+ Data.Random.Generics: [Alias] :: (Data a, Data b) => !(m a -> m b) -> Alias m
+ Data.Random.Generics.Internal.Types: [Alias] :: (Data a, Data b) => !(m a -> m b) -> Alias m
+ Data.Random.Generics.Internal.Types: [SomeData] :: Data a => m a -> SomeData m
- Data.Random.Generics.Internal.Oracle: (#!) :: (?loc :: CallStack, Eq k, Hashable k) => HashMap k v -> k -> v
+ Data.Random.Generics.Internal.Oracle: (#!) :: (Eq k, Hashable k) => HashMap k v -> k -> v
- Data.Random.Generics.Internal.Oracle: makeGenerators :: MonadRandomLike m => DataDef m -> Oracle -> Generators m
+ Data.Random.Generics.Internal.Oracle: makeGenerators :: forall m. MonadRandomLike m => DataDef m -> Oracle -> Generators m
- Data.Random.Generics.Internal.Oracle: smallGenerators :: MonadRandomLike m => DataDef m -> SmallGenerators m
+ Data.Random.Generics.Internal.Oracle: smallGenerators :: forall m. MonadRandomLike m => DataDef m -> SmallGenerators m
- Data.Random.Generics.Internal.Types: castError :: (?loc :: CallStack, Typeable a, Typeable b) => proxy a -> proxy' b -> c
+ Data.Random.Generics.Internal.Types: castError :: (Typeable a, Typeable b) => proxy a -> proxy' b -> c
- Data.Random.Generics.Internal.Types: castM :: (?loc :: CallStack, Typeable a, Typeable b) => m a -> m b
+ Data.Random.Generics.Internal.Types: castM :: forall a b m. (Typeable a, Typeable b) => m a -> m b
- Data.Random.Generics.Internal.Types: composeCastM :: (?loc :: CallStack, Typeable b, Typeable c) => (m c -> d) -> (a -> m b) -> (a -> d)
+ Data.Random.Generics.Internal.Types: composeCastM :: forall a b c d m. (Typeable b, Typeable c) => (m c -> d) -> (a -> m b) -> (a -> d)
- Data.Random.Generics.Internal.Types: unSomeData :: (?loc :: CallStack, Typeable a) => SomeData m -> m a
+ Data.Random.Generics.Internal.Types: unSomeData :: Typeable a => SomeData m -> m a
- Data.Random.Generics.Internal.Types: withProxy :: (?loc :: CallStack) => (a -> b) -> proxy a -> b
+ Data.Random.Generics.Internal.Types: withProxy :: (a -> b) -> proxy a -> b
Files
- README.md +1/−1
- generic-random.cabal +3/−2
- src/Data/Random/Generics/Internal/Oracle.hs +3/−5
- src/Data/Random/Generics/Internal/Types.hs +6/−8
README.md view
@@ -1,4 +1,4 @@-Generic random generators+Generic random generators [](https://hackage.haskell.org/package/generic-random) [](https://travis-ci.org/Lysxia/generic-random) ========================= Define sized random generators for almost any type.
generic-random.cabal view
@@ -1,5 +1,5 @@ name: generic-random-version: 0.1.0.0+version: 0.1.1.0 synopsis: Generic random generators description: Please see the README below. homepage: http://github.com/lysxia/generic-random@@ -12,6 +12,7 @@ build-type: Simple extra-source-files: README.md cabal-version: >=1.10+tested-with: GHC == 7.10.3 library hs-source-dirs: src@@ -62,4 +63,4 @@ source-repository head type: git- location: https://github.com/lyxia/generic-random+ location: https://github.com/lysxia/generic-random
src/Data/Random/Generics/Internal/Oracle.hs view
@@ -18,7 +18,6 @@ import qualified Data.Vector as V import qualified Data.Vector.Storable as S import GHC.Generics ( Generic )-import GHC.Stack ( CallStack, showCallStack ) import Numeric.AD import Data.Random.Generics.Internal.Types import Data.Random.Generics.Internal.Solver@@ -363,6 +362,7 @@ -- Equations defining C_i(x) for all types with indices i phis :: Num a => V.Vector (a -> V.Vector a -> a) phis = V.fromList [ phi dd c (types #! c) | c <- listCs dd ]+ eval' :: Double -> Maybe (S.Vector Double) eval' x = fixedPoint defSolveArgs phi' (S.replicate m 0) where phi' :: (Mode a, Scalar a ~ Double) => V.Vector a -> V.Vector a@@ -510,11 +510,9 @@ select _ _ = (snd . head) as -- That should not happen in theory, but floating point might be funny. -(#!) :: (?loc :: CallStack, Eq k, Hashable k)+(#!) :: (Eq k, Hashable k) => HashMap k v -> k -> v-h #! k = HashMap.lookupDefault (e ?loc) k h- where- e loc = error ("HashMap.(!): key not found\n" ++ showCallStack loc)+(#!) = (HashMap.!) -- | @partitions k n@: lists of non-negative integers of length @n@ with sum -- less than or equal to @k@.
src/Data/Random/Generics/Internal/Types.hs view
@@ -7,7 +7,6 @@ import Data.Coerce import Data.Data import Data.Function-import GHC.Stack ( CallStack, showCallStack ) import Test.QuickCheck data SomeData m where@@ -46,36 +45,35 @@ -- | > composeCast f g = f . g composeCastM :: forall a b c d m- . (?loc :: CallStack, Typeable b, Typeable c)+ . (Typeable b, Typeable c) => (m c -> d) -> (a -> m b) -> (a -> d) composeCastM f g | Just Refl <- eqT :: Maybe (b :~: c) = f . g composeCastM _ _ = castError ([] :: [b]) ([] :: [c]) castM :: forall a b m- . (?loc :: CallStack, Typeable a, Typeable b)+ . (Typeable a, Typeable b) => m a -> m b castM a | Just Refl <- eqT :: Maybe (a :~: b) = a castM a = let x = castError a x in x -unSomeData :: (?loc :: CallStack, Typeable a) => SomeData m -> m a+unSomeData :: Typeable a => SomeData m -> m a unSomeData (SomeData a) = castM a applyCast :: (Typeable a, Data b) => (m a -> m b) -> SomeData m -> SomeData m applyCast f = SomeData . f . unSomeData -castError :: (?loc :: CallStack, Typeable a, Typeable b)+castError :: (Typeable a, Typeable b) => proxy a -> proxy' b -> c castError a b = error $ unlines [ "Error trying to cast" , " " ++ show (typeRep a) , "to" , " " ++ show (typeRep b)- , showCallStack ?loc ] -withProxy :: (?loc :: CallStack) => (a -> b) -> proxy a -> b+withProxy :: (a -> b) -> proxy a -> b withProxy f _ =- f (error $ "This should not be evaluated\n" ++ showCallStack ?loc)+ f (error "This should not be evaluated\n") reproxy :: proxy a -> Proxy a reproxy _ = Proxy