packages feed

bizzlelude 4.17.2.2 → 4.20.2.0

raw patch · 3 files changed

+98/−52 lines, 3 filesdep +bytestringdep +mtldep +pcre-lightdep −regexprdep ~basedep ~containersdep ~directory

Dependencies added: bytestring, mtl, pcre-light, validation

Dependencies removed: regexpr

Dependency ranges changed: base, containers, directory, text

Files

bizzlelude.cabal view
@@ -1,6 +1,6 @@ Cabal-Version:       3.6 Name:                bizzlelude-Version:             4.17.2.2+Version:             4.20.2.0 License:             BSD-3-Clause License-File:        LICENSE.txt Author:              Jason Bertsche@@ -32,13 +32,17 @@     -fno-warn-name-shadowing     -funbox-strict-fields   Build-depends:-    , base == 4.17.2.1-    , containers     >= 0.6.7  && < 0.7.0-    , directory      >= 1.3.7  && < 1.4.0-    , regexpr        >= 0.5.4  && < 0.6.0-    , text           >= 2.0.2  && < 2.1+    , base == 4.20.2.0+    , bytestring     >= 0.12.0 && < 0.13.0+    , containers     >= 0.7    && < 0.8+    , directory      >= 1.3.0  && < 1.4.0+    , mtl            >= 2.3.0  && < 2.4.0+    , pcre-light     >= 0.4.0  && < 0.5.0+    , text           >= 2.1.0  && < 2.2.0+    , validation     >= 1.1.0  && < 1.2.0    -- The below is copied from the `exposed-modules` in 'base' (modulo `prelude`)+  -- https://gitlab.haskell.org/ghc/ghc/-/blob/master/libraries/base/base.cabal.in   Reexported-Modules:     , Control.Applicative     , Control.Arrow@@ -49,7 +53,10 @@     , Control.Concurrent.QSem     , Control.Concurrent.QSemN     , Control.Exception+    , Control.Exception.Annotation+    , Control.Exception.Backtrace     , Control.Exception.Base+    , Control.Exception.Context     , Control.Monad     , Control.Monad.Fail     , Control.Monad.Fix@@ -65,6 +72,7 @@     , Control.Monad.Zip     , Data.Array.Byte     , Data.Bifoldable+    , Data.Bifoldable1     , Data.Bifunctor     , Data.Bitraversable     , Data.Bits@@ -75,20 +83,22 @@     , Data.Data     , Data.Dynamic     , Data.Either+    , Data.Enum     , Data.Eq     , Data.Fixed     , Data.Foldable+    , Data.Foldable1     , Data.Function     , Data.Functor     , Data.Functor.Classes-    , Data.Functor.Contravariant     , Data.Functor.Compose     , Data.Functor.Const+    , Data.Functor.Contravariant     , Data.Functor.Identity     , Data.Functor.Product     , Data.Functor.Sum-    , Data.IORef     , Data.Int+    , Data.IORef     , Data.Ix     , Data.Kind     , Data.List@@ -105,11 +115,11 @@     , Data.String     , Data.Traversable     , Data.Tuple+    , Data.Typeable     , Data.Type.Bool     , Data.Type.Coercion     , Data.Type.Equality     , Data.Type.Ord-    , Data.Typeable     , Data.Unique     , Data.Version     , Data.Void@@ -117,10 +127,11 @@     , Debug.Trace     , Foreign     , Foreign.C+    , Foreign.C.ConstPtr     , Foreign.C.Error+    , Foreign.Concurrent     , Foreign.C.String     , Foreign.C.Types-    , Foreign.Concurrent     , Foreign.ForeignPtr     , Foreign.ForeignPtr.Safe     , Foreign.ForeignPtr.Unsafe@@ -150,6 +161,7 @@     , GHC.ConsoleHandler     , GHC.Constants     , GHC.Desugar+    , GHC.Encoding.UTF8     , GHC.Enum     , GHC.Environment     , GHC.Err@@ -157,7 +169,6 @@     , GHC.Exception     , GHC.Exception.Type     , GHC.ExecutionStack-    , GHC.ExecutionStack.Internal     , GHC.Exts     , GHC.Fingerprint     , GHC.Fingerprint.Type@@ -166,10 +177,15 @@     , GHC.Float.RealFracMethods     , GHC.Foreign     , GHC.ForeignPtr+    , GHC.Generics     , GHC.GHCi     , GHC.GHCi.Helpers-    , GHC.Generics+    , GHC.InfoProv+    , GHC.Int+    , GHC.Integer+    , GHC.Integer.Logarithms     , GHC.IO+    , GHC.IOArray     , GHC.IO.Buffer     , GHC.IO.BufferedIO     , GHC.IO.Device@@ -191,14 +207,10 @@     , GHC.IO.Handle.Text     , GHC.IO.Handle.Types     , GHC.IO.IOMode-    , GHC.IO.Unsafe+    , GHC.IORef     , GHC.IO.StdHandles     , GHC.IO.SubSystem-    , GHC.IOArray-    , GHC.IORef-    , GHC.Int-    , GHC.Integer-    , GHC.Integer.Logarithms+    , GHC.IO.Unsafe     , GHC.IsList     , GHC.Ix     , GHC.List@@ -206,9 +218,11 @@     , GHC.MVar     , GHC.Natural     , GHC.Num+    , GHC.Num.BigNat+    , GHC.Num.Integer+    , GHC.Num.Natural     , GHC.OldList     , GHC.OverloadedLabels-    , GHC.Pack     , GHC.Profiling     , GHC.Ptr     , GHC.Read@@ -216,38 +230,37 @@     , GHC.Records     , GHC.ResponseFile     , GHC.RTS.Flags-    , GHC.ST-    , GHC.Stack.CloneStack-    , GHC.StaticPtr-    , GHC.STRef     , GHC.Show+    , GHC.ST     , GHC.Stable     , GHC.StableName     , GHC.Stack     , GHC.Stack.CCS+    , GHC.Stack.CloneStack     , GHC.Stack.Types+    , GHC.StaticPtr     , GHC.Stats     , GHC.Storable+    , GHC.STRef     , GHC.TopHandler     , GHC.TypeError     , GHC.TypeLits-    , GHC.TypeLits.Internal     , GHC.TypeNats-    , GHC.TypeNats.Internal     , GHC.Unicode     , GHC.Weak+    , GHC.Weak.Finalize     , GHC.Word     , Numeric     , Numeric.Natural-    , System.CPUTime     , System.Console.GetOpt+    , System.CPUTime     , System.Environment     , System.Environment.Blank     , System.Exit+    , System.Info     , System.IO     , System.IO.Error     , System.IO.Unsafe-    , System.Info     , System.Mem     , System.Mem.StableName     , System.Mem.Weak@@ -264,14 +277,26 @@     , Type.Reflection     , Type.Reflection.Unsafe     , Unsafe.Coerce-    , GHC.IOPort    if os(windows)     Reexported-Modules:       , GHC.IO.Encoding.CodePage.API       , GHC.IO.Encoding.CodePage.Table       , GHC.Conc.Windows+      , GHC.Conc.WinIO+      , GHC.Conc.POSIX+      , GHC.Conc.POSIX.Const       , GHC.Windows+      , GHC.Event.Windows+      , GHC.Event.Windows.Clock+      , GHC.Event.Windows.ConsoleEvent+      , GHC.Event.Windows.FFI+      , GHC.Event.Windows.ManagedThreadPool+      , GHC.Event.Windows.Thread+      , GHC.IO.Handle.Windows+      , GHC.IO.Windows.Handle+      , GHC.IO.Windows.Encoding+      , GHC.IO.Windows.Paths   else     Reexported-Modules:       , GHC.Event
src/main/External.hs view
@@ -1,13 +1,16 @@ {-# LANGUAGE NoImplicitPrelude #-}-module External(module Control.Arrow, module Control.Applicative, module Control.Monad, module Control.Monad.IO.Class, module Data.Bifunctor, module Data.Bool, module Data.Char, module Data.Either, module Data.Eq, module Data.Foldable, module Data.Function, module Data.Functor, module Data.Int, module Data.IntSet, module Data.Map, module Data.Maybe, module Data.Monoid, module Data.Ord, module Data.Semigroup, module Data.Set, module Data.Text, module Data.Traversable, module Data.Tuple, module Debug.Trace, module GHC.Base, module GHC.Enum, module GHC.Err, module GHC.Float, module GHC.IO, module GHC.Num, module GHC.Real, module GHC.Show, module Numeric, module System.IO.Error, module Text.Read) where+module External(module Control.Arrow, module Control.Applicative, module Control.Monad, module Control.Monad.IO.Class, module Control.Monad.State, module Data.Bifoldable, module Data.Bifunctor, module Data.Bool, module Data.ByteString, module Data.Char, module Data.Either, module Data.Eq, module Data.Foldable, module Data.Function, module Data.Functor, module Data.Int, module Data.IntSet, module Data.List.NonEmpty, module Data.Map, module Data.Maybe, module Data.Monoid, module Data.Ord, module Data.Semigroup, module Data.Set, module Data.Text, module Data.Traversable, module Data.Tuple, module Data.Validation, module Data.Void, module Data.Word, module Debug.Trace, module GHC.Base, module GHC.Enum, module GHC.Err, module GHC.Float, module GHC.IO, module GHC.Num, module GHC.Real, module GHC.Show, module Numeric, module System.IO.Error, module Text.Read) where  import Control.Arrow((&&&), (***))-import Control.Applicative(Alternative((<|>)), Applicative((<*>), (<*), (*>), pure))+import Control.Applicative((<**>), Alternative((<|>), empty, many, some), Applicative((<*>), (<*), (*>), pure), liftA2, optional) import Control.Monad((=<<), filterM, foldM, foldM_, forM, forM_, guard, join, mapM, mapM_, Monad((>>), (>>=), return), MonadPlus(), sequence, sequence_, unless, when) import Control.Monad.IO.Class(liftIO)+import Control.Monad.State(evalState, execState, mapState, runState, State, withState) +import Data.Bifoldable(Bifoldable, bifold, bifoldMap, bimapM_) import Data.Bifunctor(Bifunctor(bimap, first, second)) import Data.Bool(Bool(False, True), (&&), (||), not, otherwise)+import Data.ByteString(ByteString) import Data.Char(Char, digitToInt, intToDigit) import Data.Either(Either(Left, Right), either, lefts, isLeft, isRight, partitionEithers, rights) import Data.Eq(Eq((==), (/=)))@@ -16,6 +19,7 @@ import Data.Functor((<$), (<$>), ($>), Functor(fmap), void) import Data.Int(Int, Int8, Int16, Int32, Int64) import Data.IntSet(IntSet)+import Data.List.NonEmpty(nonEmpty, NonEmpty) import Data.Map(Map) import Data.Maybe(catMaybes, fromMaybe, isJust, isNothing, listToMaybe, maybe, maybeToList, Maybe(Just, Nothing)) import Data.Monoid(Monoid(mappend, mempty))@@ -23,8 +27,11 @@ import Data.Semigroup(Semigroup((<>))) import Data.Set(Set) import Data.Text(lines, Text, unlines, unwords, words)-import Data.Traversable(traverse)+import Data.Traversable(for, sequenceA, Traversable, traverse) import Data.Tuple(curry, fst, snd, swap, uncurry)+import Data.Word(Word, Word8, Word16, Word32, Word64)+import Data.Validation(bindValidation, validation, Validation(Failure, Success))+import Data.Void(Void)  import Debug.Trace(trace, traceEvent, traceEventIO, traceId, traceIO, traceM, traceMarker, traceMarkerIO, traceShow, traceShowId, traceShowM, traceStack) @@ -35,11 +42,11 @@ import GHC.Float(Double, Float) import GHC.IO(FilePath, IO) import GHC.Num(Integer, Num((+), (-), (*), abs, signum, fromInteger, negate), subtract)-import GHC.Real((^), (^^), Fractional((/), recip, fromRational), fromIntegral, Integral(quot, rem, div, mod, quotRem, divMod, toInteger), RealFrac(properFraction, truncate, round, ceiling, floor), Real(toRational))+import GHC.Real((^), (^^), Fractional(recip, fromRational), fromIntegral, Integral(quot, rem, div, mod, quotRem, divMod, toInteger), RealFrac(properFraction, truncate, round, ceiling, floor), Real(toRational)) import GHC.Show(Show(show))  import Numeric(Floating, pi, exp, log, sqrt, (**), logBase, sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh)  import System.IO.Error(IOError, ioError, userError) -import Text.Read(read)+import Text.Read(read, readMaybe)
src/main/Misc.hs view
@@ -1,23 +1,30 @@ {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-missing-import-lists #-}-module Misc((|>), (&>), (&>=), (>>>), (>=>), asString, asPath, asText, showText, concat, error, fromEither, map, pam, (<&>), cartProduct, regexMatch, groupOn, return', scalaGroupBy, putStrFlush, traceLabel, unsafeRead, listDirsRecursively, uncurry5) where+module Misc((|>), (&>), (&>=), (>>>), (>=>), (/#), asString, asPath, asText, showText, concat, error, fromEither, map, pam, (<&>), cartProduct, regexMatch, groupOn, return', scalaGroupBy, putStrFlush, traceLabel, unsafeRead, listDirsRecursively, uncurry5) where  import External -import Text.RegexPR(matchRegexPR)+import Data.Text.Encoding(decodeUtf8, encodeUtf8) -import qualified Control.Arrow    as CArrow-import qualified Control.Monad    as CMonad-import qualified Data.Either      as Either-import qualified Data.Foldable    as Foldable-import qualified Data.List        as List-import qualified Data.Text        as Text-import qualified Data.Text.IO     as TIO-import qualified Data.Text.Read   as DTR-import qualified GHC.Err          as Err-import qualified System.Directory as SD-import qualified System.IO        as SIO+import GHC.Real(Fractional((/)), realToFrac) +import qualified Control.Arrow         as CArrow+import qualified Control.Monad         as CMonad+import qualified Data.Either           as Either+import qualified Data.Foldable         as Foldable+import qualified Data.List             as List+import qualified Data.List.NonEmpty    as NE+import qualified Data.Text             as Text+import qualified Data.Text.IO          as TIO+import qualified Data.Text.Read        as DTR+import qualified GHC.Err               as Err+import qualified System.Directory      as SD+import qualified System.IO             as SIO+import qualified Text.Regex.PCRE.Light as PCRE++(/#) :: (Real a, Real b) => a -> b -> Double+a /# b = (realToFrac a) / (realToFrac b)+ (|>) :: a -> (a -> b) -> b a |> f = f a @@ -61,13 +68,20 @@ cartProduct xs ys = [(x, y) | x <- xs, y <- ys]  regexMatch :: Text -> Text -> Maybe [Text]-regexMatch regex = asString &> (matchRegexPR $ asString regex) &> (map $ snd &> (map $ snd &> asText))+regexMatch regex text = map (map decodeUtf8) matched+  where+    compiled = PCRE.compile (encodeUtf8 regex) [PCRE.dotall, PCRE.multiline]+    matchedL = PCRE.match compiled (encodeUtf8 text) []+    matched  = map (unsafeNonEmpty &> NE.tail) matchedL +unsafeNonEmpty :: [a] -> NonEmpty a+unsafeNonEmpty = NE.nonEmpty &> maybe (error "Impossible") id+ fromEither :: Either a a -> a fromEither = either id id -groupOn :: Ord criterion => (item -> criterion) -> [item] -> [[item]]-groupOn f = sort &> group+groupOn :: Ord criterion => (item -> criterion) -> [item] -> [NonEmpty item]+groupOn f = sort &> group &> (map $ unsafeNonEmpty)   where     sort  = List.sortBy (compare `on` f)     group = List.groupBy ((==) `on` f)@@ -75,13 +89,13 @@ return' :: (Monad m) => a -> m a return' = (return $!) -scalaGroupBy :: Ord criterion => (item -> criterion) -> [item] -> [(criterion, [item])]+scalaGroupBy :: Ord criterion => (item -> criterion) -> [item] -> [(criterion, NonEmpty item)] scalaGroupBy f = (groupOn f) &> pair   where-    pair  = tee $ List.head &> f+    pair  = tee $ NE.head &> f     tee f = map $ f &&& id --- Hack to make GHCI print this before the prompt (JAB, 2/20/17)+-- Hack to make GHCI print this before the prompt --Jason B. (2/20/17) putStrFlush :: Text -> IO () putStrFlush x = (TIO.putStr x) >>= (const $ SIO.hFlush SIO.stdout)