packages feed

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 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)