module Extra(
withNumCapabilities, setNumCapabilities,
retry, showException, ignore, catch_, handle_, try_, catchJust_, handleJust_, tryJust_, catchBool, handleBool, tryBool,
whenJust, unit, partitionM, concatMapM, loopM, whileM, ifM, notM, (||^), (&&^), orM, andM, anyM, allM, findM, firstJustM,
isLeft, isRight, fromLeft, fromRight, fromEither,
modifyIORef', writeIORef', atomicModifyIORef', atomicWriteIORef, atomicWriteIORef',
lower, upper, strip, stripStart, stripEnd, dropAround, word1, drop1, list, uncons, unsnoc, cons, snoc, groupSort, groupSortOn, nubOn, groupOn, sortOn, chop, for, rep, reps, disjoint, distinct, dropEnd, takeEnd, breakEnd, spanEnd, dropWhileEnd, takeWhileEnd, stripSuffix, concatUnzip, merge, mergeBy, replace, wordsBy, linesBy, firstJust, breakOn, breakOnEnd, splitOn, split, chunksOf,
dupe, fst3, snd3, thd3, concat2, concat3,
showDP, intToDouble, intToFloat, floatToDouble, doubleToFloat,
withCurrentDirectory, getDirectoryContentsRecursive,
getExecutablePath, lookupEnv,
isWindows, getProcessorCount,
readFileEncoding, readFileUTF8, readFileBinary, readFile', readFileEncoding', readFileUTF8', readFileBinary', writeFileEncoding, writeFileUTF8, writeFileBinary, withTempFile, withTempDir, captureOutput, withBuffering,
sleep, subtractTime, showTime, offsetTime, offsetTimeIncrease, duration,
) where
import Control.Concurrent.Extra
import Control.Exception.Extra
import Control.Monad.Extra
import Data.Either.Extra
import Data.IORef.Extra
import Data.List.Extra
import Data.Tuple.Extra
import Numeric.Extra
import System.Directory.Extra
import System.Environment.Extra
import System.Info.Extra
import System.IO.Extra
import System.Time.Extra