packages feed

not-prelude (empty) → 0.1.0.0

raw patch · 3 files changed

+255/−0 lines, 3 filesdep +base-nopreludedep +data-defaultdep +exceptions

Dependencies added: base-noprelude, data-default, exceptions, failable, mtl, text, transformers

Files

+ CHANGELOG.md view
@@ -0,0 +1,5 @@+# Revision history for no-prelude++## 0.1.0.0 -- 17.08.2021++* First version. Released on an unsuspecting world.
+ not-prelude.cabal view
@@ -0,0 +1,33 @@+cabal-version:      2.4+name:               not-prelude+version:            0.1.0.0++synopsis: An opinionated Prelude replacement library++description: This package provides a Prelude that emphasizes reduction of repetitive import boilerplate code for real world haskell programs++license:            MIT+author:             Erick Gonzalez+maintainer:         erick@codemonkeylabs.de++category:           Prelude+extra-source-files: CHANGELOG.md++source-repository head+  type: git+  location: https://gitlab.com/codemonkeylabs/not-prelude.git++library+  hs-source-dirs:      src+  exposed-modules:     Prelude++  default-language:    Haskell2010+  other-extensions:    NoImplicitPrelude++  build-depends:       base-noprelude ^>= 4.13+                     , data-default   ^>= 0.7+                     , exceptions     ^>= 0.10+                     , failable       ^>= 1.2+                     , mtl            ^>= 2.2+                     , text           ^>= 1.2+                     , transformers   ^>= 0.5
+ src/Prelude.hs view
@@ -0,0 +1,217 @@+{-# LANGUAGE Trustworthy #-}+{-# LANGUAGE NoImplicitPrelude #-}++-----------------------------------------------------------------------------+-- |+-- Module      :  Prelude+-- Copyright   :  (c) The University of Glasgow 2001+-- License     :  BSD-style (see the file libraries/base/LICENSE)+--+-- Maintainer  :  libraries@haskell.org+-- Stability   :  stable+-- Portability :  portable+--+-- The Prelude: a standard module. The Prelude is imported by default+-- into all Haskell modules unless either there is an explicit import+-- statement for it, or the NoImplicitPrelude extension is enabled.+--+-----------------------------------------------------------------------------++module Prelude (++    module Whole,++    -- * Standard types, classes and related functions++    -- ** Basic data types+    Bool(False, True), bool,+    (&&), (||), not, otherwise,++    Ordering(LT, EQ, GT),+    Char, String, Text, pack, unpack,++    -- *** Tuples+    fst, snd, curry, uncurry,++    -- ** Basic type classes+    Eq((==), (/=)),+    Ord(compare, (<), (<=), (>=), (>), max, min),+    Enum(succ, pred, toEnum, fromEnum, enumFrom, enumFromThen,+         enumFromTo, enumFromThenTo),+    Bounded(minBound, maxBound),++    -- ** Numbers++    -- *** Numeric types+    Int, Int16, Int32, Int64, Integer, Float, Double,+    Rational, Word, Word8, Word16, Word32, Word64,++    -- *** Numeric type classes+    Num((+), (-), (*), negate, abs, signum, fromInteger),+    Real(toRational),+    Integral(quot, rem, div, mod, quotRem, divMod, toInteger),+    Fractional((/), recip, fromRational),+    Floating(pi, exp, sqrt, (**), logBase, sin, cos, tan,+             asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh),+    RealFrac(properFraction, truncate, round, ceiling, floor),+    RealFloat(floatRadix, floatDigits, floatRange, decodeFloat,+              encodeFloat, exponent, significand, scaleFloat, isNaN,+              isInfinite, isDenormalized, isIEEE, isNegativeZero, atan2),++    -- *** Numeric functions+    subtract, even, odd, gcd, lcm, (^), (^^),+    fromIntegral, realToFrac,++    -- ** Semigroups and Monoids+    Semigroup((<>)),+    Monoid(mempty, mappend, mconcat),++    -- ** Arrows+    (>>>), (<<<), (&&&),++    -- ** Monads and functors+    Functor(fmap, (<$)), (<$>), (<&>),+    Applicative(pure, (<*>), (*>), (<*)), (<|>),+    Monad((>>=), (>>), return),+    MonadFail(fail),+    forM, forM_, mapM_, foldM, sequence_, (=<<),+    void, unless, when,+    (>=>), (<=<),++    -- ** Transformers+    MaybeT(runMaybeT), ExceptT, runExceptT, lift,++    -- ** Folds and traversals+    Foldable(elem,      -- :: (Foldable t, Eq a) => a -> t a -> Bool+             -- fold,   -- :: Monoid m => t m -> m+             foldMap,   -- :: Monoid m => (a -> m) -> t a -> m+             foldr,     -- :: (a -> b -> b) -> b -> t a -> b+             -- foldr', -- :: (a -> b -> b) -> b -> t a -> b+             foldl,     -- :: (b -> a -> b) -> b -> t a -> b+             -- foldl', -- :: (b -> a -> b) -> b -> t a -> b+             foldr1,    -- :: (a -> a -> a) -> t a -> a+             foldl1,    -- :: (a -> a -> a) -> t a -> a+             maximum,   -- :: (Foldable t, Ord a) => t a -> a+             minimum,   -- :: (Foldable t, Ord a) => t a -> a+             product,   -- :: (Foldable t, Num a) => t a -> a+             sum),      -- :: Num a => t a -> a+             -- toList) -- :: Foldable t => t a -> [a]++    Traversable(traverse, sequenceA, mapM, sequence),++    -- ** Typeable++    Typeable,++    -- ** Default+    Default(def),++    -- ** Exceptions++    Handler(Handler), Exception(fromException, toException), SomeException(SomeException),+    try, throw, throwM, catch, catches, bracket, bracket_, finally,++    -- ** Miscellaneous functions+    id, const, (.), flip, ($), until,+    asTypeOf, error, errorWithoutStackTrace, undefined,+    seq, ($!),++    -- * List operations+    List.map, (List.++), List.filter,+    List.head, List.last, List.tail, List.init, (List.!!),+    Foldable.null, Foldable.length,+    List.reverse,+    -- *** Special folds+    Foldable.and, Foldable.or, Foldable.any, Foldable.all,+    Foldable.concat, Foldable.concatMap,+    -- ** Building lists+    -- *** Scans+    List.scanl, List.scanl1, List.scanr, List.scanr1,+    -- *** Infinite lists+    List.iterate, List.repeat, List.replicate, List.cycle,+    -- ** Sublists+    List.take, List.drop,+    List.takeWhile, List.dropWhile,+    List.span, List.break,+    List.splitAt,+    -- ** Searching lists+    Foldable.notElem,+    List.lookup,+    -- ** Zipping and unzipping lists+    List.zip, List.zip3,+    List.zipWith, List.zipWith3,+    List.unzip, List.unzip3,+    -- ** Functions on strings+    List.lines, List.words, List.unlines, List.unwords,++    -- * Converting to and from @String@+    -- ** Converting to @String@+    ShowS,+    Show(showsPrec, showList, show),+    shows,+    showChar, showString, showParen,+    -- ** Converting from @String@+    ReadS,+    Read(readsPrec, readList),+    reads, readParen, read, lex,++    -- * Basic Input and output+    IO,+    -- ** Simple I\/O operations+    -- All I/O functions defined here are character oriented.  The+    -- treatment of the newline character will vary on different systems.+    -- For example, two characters of input, return and linefeed, may+    -- read as a single newline character.  These functions cannot be+    -- used portably for binary I/O.+    -- *** Output functions+    putChar,+    putStr, putStrLn, print,+    -- *** Input functions+    getChar,+    getLine, getContents, interact,+    -- *** Files+    FilePath,+    readFile, writeFile, appendFile, readIO, readLn,+    -- ** Exception handling in the I\/O monad+    IOError, ioError, userError,++    MonadIO, liftIO,++    readMaybe++  ) where+++import Control.Arrow+import Control.Exception (throw)+import Control.Monad+import Control.Monad.Catch+import Control.Monad.Failable as Whole+import Control.Monad.IO.Class+import Control.Monad.Trans+import Control.Monad.Trans.Except+import Control.Monad.Trans.Maybe+import Data.Bool        ( bool )+import Data.Default+import Data.Either as Whole+import Data.Foldable    ( Foldable(..) )+import Data.Functor     ( (<$>), (<&>) )+import Data.Int+import Data.Word+import Data.Maybe as Whole+import Data.Text+import Data.Traversable ( Traversable(..) )+import Data.Tuple+import Data.Typeable+import GHC.Base hiding ( foldr, mapM, sequence )+import GHC.Enum+import GHC.Float+import GHC.Num+import GHC.Real+import GHC.Show+import qualified Data.Foldable as Foldable+import qualified Data.List as List+import System.IO+import System.IO.Error+import Text.Read hiding (lift)+