isomorphism-class 0.1.0.9 → 0.1.0.10
raw patch · 6 files changed
+53/−73 lines, 6 filesdep −tasty-hunitdep ~bytestringdep ~primitivePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies removed: tasty-hunit
Dependency ranges changed: bytestring, primitive
API changes (from Hackage documentation)
- IsomorphismClass: class IsomorphicTo b a => IsomorphicTo a b
+ IsomorphismClass: class (IsomorphicTo b a) => IsomorphicTo a b
Files
- isomorphism-class.cabal +40/−42
- library/IsomorphismClass.hs +4/−4
- library/IsomorphismClass/Prelude.hs +1/−3
- library/IsomorphismClass/TextCompat/Array.hs +0/−1
- test/Main.hs +3/−8
- test/Test/ExtraInstances.hs +5/−15
isomorphism-class.cabal view
@@ -1,65 +1,63 @@ cabal-version: 3.0--name: isomorphism-class-version: 0.1.0.9-synopsis: Isomorphism typeclass solving the conversion problem-homepage: https://github.com/nikita-volkov/isomorphism-class-bug-reports: https://github.com/nikita-volkov/isomorphism-class/issues-author: Nikita Volkov <nikita.y.volkov@mail.ru>-maintainer: Nikita Volkov <nikita.y.volkov@mail.ru>-copyright: (c) 2022 Nikita Volkov-license: MIT-license-file: LICENSE+name: isomorphism-class+version: 0.1.0.10+synopsis: Isomorphism typeclass solving the conversion problem+homepage: https://github.com/nikita-volkov/isomorphism-class+bug-reports: https://github.com/nikita-volkov/isomorphism-class/issues+author: Nikita Volkov <nikita.y.volkov@mail.ru>+maintainer: Nikita Volkov <nikita.y.volkov@mail.ru>+copyright: (c) 2022 Nikita Volkov+license: MIT+license-file: LICENSE source-repository head- type: git+ type: git location: git://github.com/nikita-volkov/isomorphism-class.git common language-settings- default-language: Haskell2010+ default-language: Haskell2010 default-extensions:+ NoImplicitPrelude FlexibleContexts FlexibleInstances MagicHash MultiParamTypeClasses- NoImplicitPrelude ScopedTypeVariables TypeApplications UndecidableSuperClasses -common library-dependencies- build-depends:- base >=4.12 && <5,- bytestring >=0.10 && <0.12,- containers >=0.6 && <0.7,- hashable >=1 && <2,- primitive >=0.7.3 && <0.9,- text >=1.2 && <3,- unordered-containers >=0.2 && <0.3,- vector >=0.12 && <0.14,- library- import: language-settings, library-dependencies- hs-source-dirs: library- exposed-modules:- IsomorphismClass+ import: language-settings+ hs-source-dirs: library+ exposed-modules: IsomorphismClass other-modules: IsomorphismClass.Prelude IsomorphismClass.TextCompat.Array + build-depends:+ , base >=4.12 && <5+ , bytestring >=0.10 && <0.12+ , containers >=0.6 && <0.7+ , hashable >=1 && <2+ , primitive >=0.7.3 && <0.10+ , text >=1.2 && <3+ , unordered-containers >=0.2 && <0.3+ , vector >=0.12 && <0.14+ test-suite test- import: language-settings, library-dependencies- type: exitcode-stdio-1.0+ import: language-settings+ type: exitcode-stdio-1.0 hs-source-dirs: test- main-is: Main.hs- other-modules:- Test.ExtraInstances+ main-is: Main.hs+ other-modules: Test.ExtraInstances build-depends:- bytestring,- isomorphism-class,- QuickCheck >=2.13 && <3,- quickcheck-instances >=0.3.28 && <0.4,- rebase >=1.15 && <2,- tasty >=1.2.3 && <2,- tasty-hunit >=0.10.0.2 && <0.11,- tasty-quickcheck >=0.10.1 && <0.11,+ , bytestring >=0.10 && <0.12+ , isomorphism-class+ , primitive >=0.7.3 && <0.10+ , QuickCheck >=2.13 && <3+ , quickcheck-instances >=0.3.28 && <0.4+ , rebase >=1.15 && <2+ , tasty >=1.2.3 && <2+ , tasty-quickcheck >=0.10.1 && <0.11+ , text >=1.2 && <3+ , vector >=0.12 && <0.14
library/IsomorphismClass.hs view
@@ -1,3 +1,5 @@+{-# OPTIONS_GHC -Wno-unused-top-binds #-}+ -- | -- Isomorphism as a lawful solution to the conversion problem. --@@ -114,13 +116,11 @@ import qualified Data.ByteString.Short.Internal as ByteStringShortInternal import qualified Data.Primitive.ByteArray as PrimitiveByteArray import qualified Data.Sequence as Seq-import qualified Data.Set as Set import qualified Data.Text as Text import qualified Data.Text.Array as TextArray import qualified Data.Text.Lazy as TextLazy import qualified Data.Text.Lazy.Builder as TextLazyBuilder import qualified Data.Vector as Vector-import qualified Data.Vector.Generic as VectorGeneric import IsomorphismClass.Prelude import qualified IsomorphismClass.TextCompat.Array as TextCompatArray @@ -166,7 +166,7 @@ -- For each pair of isomorphic types (/A/ and /B/) the compiler will require -- you to define two instances, namely: @IsomorphicTo A B@ and @IsomorphicTo -- B A@.-class IsomorphicTo b a => IsomorphicTo a b where+class (IsomorphicTo b a) => IsomorphicTo a b where to :: b -> a --@@ -526,7 +526,7 @@ -- -- The first type application of the 'to' function on the other hand specifies -- the output data type.-from :: forall a b. IsomorphicTo b a => a -> b+from :: forall a b. (IsomorphicTo b a) => a -> b from = to -- |
library/IsomorphismClass/Prelude.hs view
@@ -48,7 +48,7 @@ import Data.Proxy as Exports import Data.Ratio as Exports import Data.STRef as Exports-import Data.Semigroup as Exports hiding (Option)+import Data.Semigroup as Exports import Data.Sequence as Exports (Seq) import Data.Set as Exports (Set) import Data.String as Exports@@ -81,8 +81,6 @@ import System.Mem as Exports import System.Mem.StableName as Exports import System.Timeout as Exports-import Text.ParserCombinators.ReadP as Exports (ReadP, ReadS, readP_to_S, readS_to_P)-import Text.ParserCombinators.ReadPrec as Exports (ReadPrec, readP_to_Prec, readPrec_to_P, readPrec_to_S, readS_to_Prec) import Text.Printf as Exports (hPrintf, printf) import Text.Read as Exports (Read (..), readEither, readMaybe) import Unsafe.Coerce as Exports
library/IsomorphismClass/TextCompat/Array.hs view
@@ -4,7 +4,6 @@ import Data.Text.Array import GHC.Exts (ByteArray#)-import IsomorphismClass.Prelude {-# INLINE toUnliftedByteArray #-} toUnliftedByteArray :: Array -> ByteArray#
test/Main.hs view
@@ -1,26 +1,21 @@ module Main where -import qualified Data.ByteString as ByteString import qualified Data.ByteString.Builder as ByteStringBuilder import qualified Data.ByteString.Lazy as ByteStringLazy import qualified Data.ByteString.Short as ByteStringShort import qualified Data.Primitive.ByteArray as PrimitiveByteArray-import qualified Data.Sequence as Seq-import qualified Data.Set as Set-import qualified Data.Text as Text import qualified Data.Text.Lazy as TextLazy import qualified Data.Text.Lazy.Builder as TextLazyBuilder-import qualified Data.Vector as Vector-import qualified Data.Vector.Generic as VectorGeneric import IsomorphismClass import Rebase.Prelude-import Test.ExtraInstances+import Test.ExtraInstances () import Test.Tasty-import Test.Tasty.HUnit import Test.Tasty.QuickCheck hiding ((.&.)) +main :: IO () main = defaultMain allTests +allTests :: TestTree allTests = testGroup "All" $ [ testPair @String @Text Proxy Proxy,
test/Test/ExtraInstances.hs view
@@ -1,26 +1,16 @@+{-# OPTIONS_GHC -Wno-orphans #-}+ module Test.ExtraInstances () where -import qualified Data.ByteString as ByteString import qualified Data.ByteString.Builder as ByteStringBuilder-import qualified Data.ByteString.Lazy as ByteStringLazy-import qualified Data.ByteString.Short as ByteStringShort-import qualified Data.HashSet as HashSet-import qualified Data.Primitive.ByteArray as PrimitiveByteArray-import qualified Data.Sequence as Seq-import qualified Data.Set as Set-import qualified Data.Text as Text-import qualified Data.Text.Lazy as TextLazy import qualified Data.Text.Lazy.Builder as TextLazyBuilder-import qualified Data.Vector as Vector import qualified Data.Vector.Generic as VectorGeneric import qualified Data.Vector.Primitive as VectorPrimitive-import qualified Data.Vector.Storable as VectorStorable-import qualified Data.Vector.Unboxed as VectorUnboxed import Rebase.Prelude import Test.QuickCheck-import Test.QuickCheck.Instances+import Test.QuickCheck.Instances () -instance (Arbitrary a, VectorPrimitive.Prim a, Show a) => Arbitrary (VectorPrimitive.Vector a) where+instance (Arbitrary a, VectorPrimitive.Prim a) => Arbitrary (VectorPrimitive.Vector a) where arbitrary = arbitraryVector shrink = shrinkVector @@ -35,7 +25,7 @@ arbitrary = ByteStringBuilder.byteString <$> arbitrary shrink = shrinkMap ByteStringBuilder.lazyByteString ByteStringBuilder.toLazyByteString -arbitraryVector :: (VectorGeneric.Vector v a, Arbitrary a, Show a) => Gen (v a)+arbitraryVector :: (VectorGeneric.Vector v a, Arbitrary a) => Gen (v a) arbitraryVector = VectorGeneric.fromList <$> arbitrary shrinkVector :: (VectorGeneric.Vector v a, Arbitrary a) => v a -> [v a]