hw-balancedparens 0.2.0.1 → 0.2.0.2
raw patch · 15 files changed
+200/−175 lines, 15 filesdep −storable-tupledep ~QuickCheckdep ~criteriondep ~hspecPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies removed: storable-tuple
Dependency ranges changed: QuickCheck, criterion, hspec, hw-bits, hw-excess, hw-prim, hw-rankselect-base, vector
API changes (from Hackage documentation)
- HaskellWorks.Data.BalancedParens.BalancedParens: class (OpenAt v, CloseAt v, FindOpen v, FindClose v, Enclose v) => BalancedParens v where firstChild v p = if openAt v p && openAt v (p + 1) then Just (p + 1) else Nothing nextSibling v p = if closeAt v p then Nothing else openAt v `mfilter` (findClose v p >>= (\ q -> if p /= q then return (q + 1) else Nothing)) parent v p = enclose v p >>= (\ r -> if r >= 1 then return r else Nothing)
+ HaskellWorks.Data.BalancedParens.BalancedParens: class (OpenAt v, CloseAt v, FindOpen v, FindClose v, Enclose v) => BalancedParens v
Files
- hw-balancedparens.cabal +87/−71
- src/HaskellWorks/Data/BalancedParens/BalancedParens.hs +13/−12
- src/HaskellWorks/Data/BalancedParens/Broadword.hs +8/−7
- src/HaskellWorks/Data/BalancedParens/CloseAt.hs +8/−8
- src/HaskellWorks/Data/BalancedParens/Enclose.hs +7/−6
- src/HaskellWorks/Data/BalancedParens/FindClose.hs +11/−10
- src/HaskellWorks/Data/BalancedParens/FindCloseN.hs +9/−8
- src/HaskellWorks/Data/BalancedParens/FindOpen.hs +8/−7
- src/HaskellWorks/Data/BalancedParens/FindOpenN.hs +9/−8
- src/HaskellWorks/Data/BalancedParens/NewCloseAt.hs +7/−6
- src/HaskellWorks/Data/BalancedParens/NewOpenAt.hs +7/−6
- src/HaskellWorks/Data/BalancedParens/OpenAt.hs +9/−8
- src/HaskellWorks/Data/BalancedParens/RangeMinMax.hs +0/−1
- src/HaskellWorks/Data/BalancedParens/RangeMinMax2.hs +2/−2
- src/HaskellWorks/Data/BalancedParens/Simple.hs +15/−15
hw-balancedparens.cabal view
@@ -1,78 +1,94 @@-name: hw-balancedparens-version: 0.2.0.1-synopsis: Balanced parentheses-description: Please see README.md-homepage: http://github.com/haskell-works/hw-balancedparens#readme-license: BSD3-license-file: LICENSE-author: John Ky-maintainer: newhoggy@gmail.com-copyright: 2016 John Ky-category: Data-build-type: Simple-extra-source-files: README.md-cabal-version: >= 1.22--library- hs-source-dirs: src- exposed-modules: HaskellWorks.Data.BalancedParens- , HaskellWorks.Data.BalancedParens.BalancedParens- , HaskellWorks.Data.BalancedParens.Broadword- , HaskellWorks.Data.BalancedParens.CloseAt- , HaskellWorks.Data.BalancedParens.Enclose- , HaskellWorks.Data.BalancedParens.FindClose- , HaskellWorks.Data.BalancedParens.FindCloseN- , HaskellWorks.Data.BalancedParens.FindOpen- , HaskellWorks.Data.BalancedParens.FindOpenN- , HaskellWorks.Data.BalancedParens.NewCloseAt- , HaskellWorks.Data.BalancedParens.NewOpenAt- , HaskellWorks.Data.BalancedParens.OpenAt- , HaskellWorks.Data.BalancedParens.RangeMinMax- , HaskellWorks.Data.BalancedParens.RangeMinMax2- , HaskellWorks.Data.BalancedParens.Simple- build-depends: base >= 4 && < 5- , hw-bits >= 0.4.0.0- , hw-excess >= 0.2.0.0- , hw-prim >= 0.4.0.0- , hw-rankselect-base >= 0.2.0.0- , storable-tuple- , vector+-- This file has been generated from package.yaml by hpack version 0.18.1.+--+-- see: https://github.com/sol/hpack - default-language: Haskell2010- ghc-options: -Wall -O2 -msse4.2+name: hw-balancedparens+version: 0.2.0.2+synopsis: Balanced parentheses+description: Balanced parentheses.+category: Data, Bit, Succinct Data Structures, Data Structures+homepage: http://github.com/haskell-works/hw-balancedparens#readme+bug-reports: https://github.com/haskell-works/hw-balancedparens/issues+author: John Ky+maintainer: newhoggy@gmail.com+copyright: 2016 John Ky+license: BSD3+license-file: LICENSE+tested-with: GHC == 8.4.2, GHC == 8.2.2, GHC == 8.0.2, GHC == 7.10.3+build-type: Simple+cabal-version: >= 1.10 -test-suite hw-balancedparens-test- type: exitcode-stdio-1.0- hs-source-dirs: test- main-is: Spec.hs- other-modules: HaskellWorks.Data.BalancedParens.Internal.BroadwordSpec- , HaskellWorks.Data.BalancedParens.RangeMinMaxSpec- , HaskellWorks.Data.BalancedParens.RangeMinMax2Spec- , HaskellWorks.Data.BalancedParens.SimpleSpec- build-depends: base >= 4 && < 5- , hspec- , hw-balancedparens- , hw-bits >= 0.4.0.0- , hw-prim >= 0.4.0.0- , hw-rankselect-base >= 0.2.0.0- , QuickCheck- , vector- ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall- default-language: Haskell2010+extra-source-files:+ README.md source-repository head- type: git+ type: git location: https://github.com/haskell-works/hw-balancedparens +library+ hs-source-dirs:+ src+ ghc-options: -Wall -O2 -msse4.2+ build-depends:+ base >=4 && <5+ , hw-bits >=0.4.0.0 && < 0.8+ , hw-prim >=0.4.0.0 && < 0.7+ , vector >= 0.12 && < 0.13+ , hw-excess >=0.2.0.0 && < 0.3+ , hw-rankselect-base >=0.2.0.0 && < 0.4+ exposed-modules:+ HaskellWorks.Data.BalancedParens+ HaskellWorks.Data.BalancedParens.BalancedParens+ HaskellWorks.Data.BalancedParens.Broadword+ HaskellWorks.Data.BalancedParens.CloseAt+ HaskellWorks.Data.BalancedParens.Enclose+ HaskellWorks.Data.BalancedParens.FindClose+ HaskellWorks.Data.BalancedParens.FindCloseN+ HaskellWorks.Data.BalancedParens.FindOpen+ HaskellWorks.Data.BalancedParens.FindOpenN+ HaskellWorks.Data.BalancedParens.NewCloseAt+ HaskellWorks.Data.BalancedParens.NewOpenAt+ HaskellWorks.Data.BalancedParens.OpenAt+ HaskellWorks.Data.BalancedParens.RangeMinMax+ HaskellWorks.Data.BalancedParens.RangeMinMax2+ HaskellWorks.Data.BalancedParens.Simple+ other-modules:+ Paths_hw_balancedparens+ default-language: Haskell2010++test-suite hw-balancedparens-test+ type: exitcode-stdio-1.0+ main-is: Spec.hs+ hs-source-dirs:+ test+ ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N+ build-depends:+ base >=4 && <5+ , hw-bits >=0.4.0.0 && < 0.8+ , hw-prim >=0.4.0.0 && < 0.7+ , vector >= 0.12 && < 0.13+ , hspec >= 2.2 && < 2.6+ , hw-balancedparens+ , hw-rankselect-base >=0.2.0.0 && < 0.4+ , QuickCheck >= 2.10 && < 2.12+ other-modules:+ HaskellWorks.Data.BalancedParens.Internal.BroadwordSpec+ HaskellWorks.Data.BalancedParens.RangeMinMax2Spec+ HaskellWorks.Data.BalancedParens.RangeMinMaxSpec+ HaskellWorks.Data.BalancedParens.SimpleSpec+ default-language: Haskell2010+ benchmark bench- Type: exitcode-stdio-1.0- HS-Source-Dirs: bench- Main-Is: Main.hs- GHC-Options: -O2 -Wall -msse4.2- Default-Language: Haskell2010- Build-Depends: base >= 4 && < 5- , criterion- , hw-balancedparens- , hw-bits >= 0.4.0.0- , hw-prim >= 0.4.0.0- , vector+ type: exitcode-stdio-1.0+ main-is: Main.hs+ hs-source-dirs:+ bench+ ghc-options: -Wall -O2 -msse4.2+ build-depends:+ base >=4 && <5+ , hw-bits >=0.4.0.0 && < 0.8+ , hw-prim >=0.4.0.0 && < 0.7+ , vector >= 0.12 && < 0.13+ , criterion >= 1.2 && < 1.5+ , hw-balancedparens+ default-language: Haskell2010
src/HaskellWorks/Data/BalancedParens/BalancedParens.hs view
@@ -6,18 +6,19 @@ , subtreeSize ) where -import Control.Monad-import qualified Data.Vector.Storable as DVS-import Data.Word-import HaskellWorks.Data.BalancedParens.CloseAt-import HaskellWorks.Data.BalancedParens.Enclose-import HaskellWorks.Data.BalancedParens.FindClose-import HaskellWorks.Data.BalancedParens.FindOpen-import HaskellWorks.Data.BalancedParens.OpenAt-import HaskellWorks.Data.Naive-import HaskellWorks.Data.Positioning-import HaskellWorks.Data.RankSelect.Base.Rank0-import HaskellWorks.Data.RankSelect.Base.Rank1+import Control.Monad+import Data.Word+import HaskellWorks.Data.BalancedParens.CloseAt+import HaskellWorks.Data.BalancedParens.Enclose+import HaskellWorks.Data.BalancedParens.FindClose+import HaskellWorks.Data.BalancedParens.FindOpen+import HaskellWorks.Data.BalancedParens.OpenAt+import HaskellWorks.Data.Naive+import HaskellWorks.Data.Positioning+import HaskellWorks.Data.RankSelect.Base.Rank0+import HaskellWorks.Data.RankSelect.Base.Rank1++import qualified Data.Vector.Storable as DVS class (OpenAt v, CloseAt v, FindOpen v, FindClose v, Enclose v) => BalancedParens v where -- TODO Second argument should be Int
src/HaskellWorks/Data/BalancedParens/Broadword.hs view
@@ -14,13 +14,14 @@ , kkBitDiffSimple ) where -import qualified Data.Bits as DB-import Data.Int-import Data.Word-import Debug.Trace-import HaskellWorks.Data.Bits.BitShown-import HaskellWorks.Data.Bits.BitWise-import HaskellWorks.Data.Bits.Broadword+import Data.Int+import Data.Word+import Debug.Trace+import HaskellWorks.Data.Bits.BitShown+import HaskellWorks.Data.Bits.BitWise+import HaskellWorks.Data.Bits.Broadword++import qualified Data.Bits as DB traceW :: String -> Word64 -> Word64 traceW s w = trace (s ++ ": " ++ show (BitShown w) ++ " : " ++ show w ++ ", " ++ show (fromIntegral w :: Int64)) w
src/HaskellWorks/Data/BalancedParens/CloseAt.hs view
@@ -4,14 +4,14 @@ ( CloseAt(..) ) where -import Data.Vector.Storable as DVS-import Data.Word-import HaskellWorks.Data.Bits.BitLength-import HaskellWorks.Data.Bits.BitWise-import HaskellWorks.Data.Bits.BitShown-import HaskellWorks.Data.Bits.Broadword-import HaskellWorks.Data.Positioning-import HaskellWorks.Data.Naive+import Data.Vector.Storable as DVS+import Data.Word+import HaskellWorks.Data.Bits.BitLength+import HaskellWorks.Data.Bits.BitWise+import HaskellWorks.Data.Bits.BitShown+import HaskellWorks.Data.Bits.Broadword+import HaskellWorks.Data.Positioning+import HaskellWorks.Data.Naive closeAt' :: TestBit a => a -> Count -> Bool closeAt' v c = not (v .?. toPosition (c - 1))
src/HaskellWorks/Data/BalancedParens/Enclose.hs view
@@ -4,12 +4,13 @@ ( Enclose(..) ) where -import qualified Data.Vector.Storable as DVS-import Data.Word-import HaskellWorks.Data.BalancedParens.FindOpenN-import HaskellWorks.Data.Bits.BitShown-import HaskellWorks.Data.Naive-import HaskellWorks.Data.Positioning+import Data.Word+import HaskellWorks.Data.BalancedParens.FindOpenN+import HaskellWorks.Data.Bits.BitShown+import HaskellWorks.Data.Naive+import HaskellWorks.Data.Positioning++import qualified Data.Vector.Storable as DVS class Enclose v where enclose :: v -> Count -> Maybe Count
src/HaskellWorks/Data/BalancedParens/FindClose.hs view
@@ -4,16 +4,17 @@ ( FindClose(..) ) where -import qualified Data.Vector.Storable as DVS-import Data.Word-import HaskellWorks.Data.BalancedParens.Broadword-import HaskellWorks.Data.BalancedParens.CloseAt-import HaskellWorks.Data.BalancedParens.FindCloseN-import HaskellWorks.Data.Bits.BitShown-import HaskellWorks.Data.Bits.BitWise-import HaskellWorks.Data.Bits.Broadword-import HaskellWorks.Data.Naive-import HaskellWorks.Data.Positioning+import Data.Word+import HaskellWorks.Data.BalancedParens.Broadword+import HaskellWorks.Data.BalancedParens.CloseAt+import HaskellWorks.Data.BalancedParens.FindCloseN+import HaskellWorks.Data.Bits.BitShown+import HaskellWorks.Data.Bits.BitWise+import HaskellWorks.Data.Bits.Broadword+import HaskellWorks.Data.Naive+import HaskellWorks.Data.Positioning++import qualified Data.Vector.Storable as DVS class FindClose v where findClose :: v -> Count -> Maybe Count
src/HaskellWorks/Data/BalancedParens/FindCloseN.hs view
@@ -4,14 +4,15 @@ ( FindCloseN(..) ) where -import qualified Data.Vector.Storable as DVS-import Data.Word-import HaskellWorks.Data.BalancedParens.CloseAt-import HaskellWorks.Data.Bits.BitLength-import HaskellWorks.Data.Bits.BitShown-import HaskellWorks.Data.Bits.BitWise-import HaskellWorks.Data.Naive-import HaskellWorks.Data.Positioning+import Data.Word+import HaskellWorks.Data.BalancedParens.CloseAt+import HaskellWorks.Data.Bits.BitLength+import HaskellWorks.Data.Bits.BitShown+import HaskellWorks.Data.Bits.BitWise+import HaskellWorks.Data.Naive+import HaskellWorks.Data.Positioning++import qualified Data.Vector.Storable as DVS class FindCloseN v where findCloseN :: v -> Count -> Count -> Maybe Count
src/HaskellWorks/Data/BalancedParens/FindOpen.hs view
@@ -4,13 +4,14 @@ ( FindOpen(..) ) where -import qualified Data.Vector.Storable as DVS-import Data.Word-import HaskellWorks.Data.BalancedParens.FindOpenN-import HaskellWorks.Data.BalancedParens.OpenAt-import HaskellWorks.Data.Bits.BitShown-import HaskellWorks.Data.Naive-import HaskellWorks.Data.Positioning+import Data.Word+import HaskellWorks.Data.BalancedParens.FindOpenN+import HaskellWorks.Data.BalancedParens.OpenAt+import HaskellWorks.Data.Bits.BitShown+import HaskellWorks.Data.Naive+import HaskellWorks.Data.Positioning++import qualified Data.Vector.Storable as DVS class FindOpen v where findOpen :: v -> Count -> Maybe Count
src/HaskellWorks/Data/BalancedParens/FindOpenN.hs view
@@ -4,14 +4,15 @@ ( FindOpenN(..) ) where -import qualified Data.Vector.Storable as DVS-import Data.Word-import HaskellWorks.Data.BalancedParens.OpenAt-import HaskellWorks.Data.Bits.BitLength-import HaskellWorks.Data.Bits.BitShown-import HaskellWorks.Data.Bits.BitWise-import HaskellWorks.Data.Naive-import HaskellWorks.Data.Positioning+import Data.Word+import HaskellWorks.Data.BalancedParens.OpenAt+import HaskellWorks.Data.Bits.BitLength+import HaskellWorks.Data.Bits.BitShown+import HaskellWorks.Data.Bits.BitWise+import HaskellWorks.Data.Naive+import HaskellWorks.Data.Positioning++import qualified Data.Vector.Storable as DVS class FindOpenN v where findOpenN :: v -> Count -> Count -> Maybe Count
src/HaskellWorks/Data/BalancedParens/NewCloseAt.hs view
@@ -5,12 +5,13 @@ , newCloseAt' ) where -import qualified Data.Vector.Storable as DVS-import Data.Word-import HaskellWorks.Data.Bits.BitLength-import HaskellWorks.Data.Bits.BitShown-import HaskellWorks.Data.Bits.BitWise-import HaskellWorks.Data.Positioning+import Data.Word+import HaskellWorks.Data.Bits.BitLength+import HaskellWorks.Data.Bits.BitShown+import HaskellWorks.Data.Bits.BitWise+import HaskellWorks.Data.Positioning++import qualified Data.Vector.Storable as DVS class NewCloseAt v where newCloseAt :: v -> Count -> Bool
src/HaskellWorks/Data/BalancedParens/NewOpenAt.hs view
@@ -4,12 +4,13 @@ ( NewOpenAt(..) ) where -import qualified Data.Vector.Storable as DVS-import Data.Word-import HaskellWorks.Data.Bits.BitLength-import HaskellWorks.Data.Bits.BitShown-import HaskellWorks.Data.Bits.BitWise-import HaskellWorks.Data.Positioning+import Data.Word+import HaskellWorks.Data.Bits.BitLength+import HaskellWorks.Data.Bits.BitShown+import HaskellWorks.Data.Bits.BitWise+import HaskellWorks.Data.Positioning++import qualified Data.Vector.Storable as DVS class NewOpenAt v where newOpenAt :: v -> Count -> Bool
src/HaskellWorks/Data/BalancedParens/OpenAt.hs view
@@ -4,14 +4,15 @@ ( OpenAt(..) ) where -import qualified Data.Vector.Storable as DVS-import Data.Word-import HaskellWorks.Data.Bits.BitLength-import HaskellWorks.Data.Bits.BitShown-import HaskellWorks.Data.Bits.BitWise-import HaskellWorks.Data.Bits.Broadword-import HaskellWorks.Data.Naive-import HaskellWorks.Data.Positioning+import Data.Word+import HaskellWorks.Data.Bits.BitLength+import HaskellWorks.Data.Bits.BitShown+import HaskellWorks.Data.Bits.BitWise+import HaskellWorks.Data.Bits.Broadword+import HaskellWorks.Data.Naive+import HaskellWorks.Data.Positioning++import qualified Data.Vector.Storable as DVS class OpenAt v where openAt :: v -> Count -> Bool
src/HaskellWorks/Data/BalancedParens/RangeMinMax.hs view
@@ -10,7 +10,6 @@ ) where import Data.Int-import Foreign.Storable.Tuple () import HaskellWorks.Data.AtIndex import HaskellWorks.Data.BalancedParens.BalancedParens import HaskellWorks.Data.BalancedParens.CloseAt
src/HaskellWorks/Data/BalancedParens/RangeMinMax2.hs view
@@ -33,8 +33,8 @@ import HaskellWorks.Data.Vector.AsVector64 import Prelude hiding (length) -import qualified Data.Vector as DV-import qualified Data.Vector.Storable as DVS+import qualified Data.Vector as DV+import qualified Data.Vector.Storable as DVS data RangeMinMax2 a = RangeMinMax2 { rangeMinMax2BP :: !a
src/HaskellWorks/Data/BalancedParens/Simple.hs view
@@ -5,21 +5,21 @@ ( SimpleBalancedParens(..) ) where -import Control.Monad-import HaskellWorks.Data.BalancedParens.BalancedParens-import HaskellWorks.Data.BalancedParens.CloseAt-import HaskellWorks.Data.BalancedParens.Enclose-import HaskellWorks.Data.BalancedParens.FindClose-import HaskellWorks.Data.BalancedParens.FindOpen-import HaskellWorks.Data.BalancedParens.OpenAt-import HaskellWorks.Data.Bits.BitLength-import HaskellWorks.Data.Bits.BitShow-import HaskellWorks.Data.Bits.BitWise-import HaskellWorks.Data.RankSelect.Base.Rank0-import HaskellWorks.Data.RankSelect.Base.Rank1-import HaskellWorks.Data.RankSelect.Base.Select0-import HaskellWorks.Data.RankSelect.Base.Select1-import Prelude as P+import Control.Monad+import HaskellWorks.Data.BalancedParens.BalancedParens+import HaskellWorks.Data.BalancedParens.CloseAt+import HaskellWorks.Data.BalancedParens.Enclose+import HaskellWorks.Data.BalancedParens.FindClose+import HaskellWorks.Data.BalancedParens.FindOpen+import HaskellWorks.Data.BalancedParens.OpenAt+import HaskellWorks.Data.Bits.BitLength+import HaskellWorks.Data.Bits.BitShow+import HaskellWorks.Data.Bits.BitWise+import HaskellWorks.Data.RankSelect.Base.Rank0+import HaskellWorks.Data.RankSelect.Base.Rank1+import HaskellWorks.Data.RankSelect.Base.Select0+import HaskellWorks.Data.RankSelect.Base.Select1+import Prelude as P newtype SimpleBalancedParens a = SimpleBalancedParens a deriving (BalancedParens, FindOpen, FindClose, Enclose, OpenAt, CloseAt, BitLength, BitShow, Eq, Rank0, Rank1, Select0, Select1, TestBit)