packages feed

papa-base-implement 0.2.0 → 0.3.0

raw patch · 7 files changed

+61/−133 lines, 7 filesdep +papa-base-exportdep +semigroupsdep ~basenew-uploader

Dependencies added: papa-base-export, semigroups

Dependency ranges changed: base

Files

− changelog
@@ -1,3 +0,0 @@-0.2.0--* Initial release.
+ changelog.md view
@@ -0,0 +1,3 @@+0.2.0++* Initial release.
papa-base-implement.cabal view
@@ -1,22 +1,25 @@ name:               papa-base-implement-version:            0.2.0+version:            0.3.0 license:            BSD3 license-file:       LICENSE-author:             Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ>-maintainer:         Tony Morris+author:             Queensland Functional Programming Lab <oᴉ˙ldɟb@llǝʞsɐɥ>+maintainer:         Queensland Functional Programming Lab <oᴉ˙ldɟb@llǝʞsɐɥ> copyright:          Copyright (c) 2017, Commonwealth Scientific and Industrial Research Organisation (CSIRO) ABN 41 687 119 230. synopsis:           Useful base functions reimplemented category:           Prelude-description:        Useful base functions reimplemented-homepage:           https://github.com/data61/papa-base-implement-bug-reports:        https://github.com/data61/papa-base-implement/issues+description:+  <<http://i.imgur.com/uZnp9ke.png>>+  .+  Useful base functions reimplemented+homepage:           https://github.com/qfpl/papa+bug-reports:        https://github.com/qfpl/papa/issues cabal-version:      >= 1.10 build-type:         Custom-extra-source-files: changelog+extra-source-files: changelog.md  source-repository   head   type:             git-  location:         git@github.com:data61/papa-base-implement.git+  location:         git@github.com:qfpl/papa.git  flag                small_base   description:      Choose the new, split-up base package.@@ -27,7 +30,9 @@    build-depends:                     base >= 4.8 && < 5-                    +                  , semigroups >= 0.18+                  , papa-base-export >= 0.3.0 && < 1+                     ghc-options:                     -Wall @@ -41,9 +46,9 @@                     Papa.Base.Implement                     Papa.Base.Implement.Control.Applicative                     Papa.Base.Implement.Control.Monad-                    Papa.Base.Implement.Data.Bool                     Papa.Base.Implement.Data.Foldable                     Papa.Base.Implement.Data.Function+                    Papa.Base.Implement.Data.Functor                     Papa.Base.Implement.Data.List                     Papa.Base.Implement.Data.Monoid                     Papa.Base.Implement.Data.Traversable
src/Papa/Base/Implement.hs view
@@ -6,8 +6,8 @@  import Papa.Base.Implement.Control.Applicative as P import Papa.Base.Implement.Control.Monad as P-import Papa.Base.Implement.Data.Bool as P import Papa.Base.Implement.Data.Foldable as P+import Papa.Base.Implement.Data.Functor as P import Papa.Base.Implement.Data.Function as P import Papa.Base.Implement.Data.List as P import Papa.Base.Implement.Data.Monoid as P
src/Papa/Base/Implement/Control/Applicative.hs view
@@ -2,11 +2,15 @@  module Papa.Base.Implement.Control.Applicative(   const-, return+, replicateA+, replicateA_ ) where -import Control.Applicative(Applicative(pure))+import Control.Applicative(Applicative(pure), liftA2, (*>))+import Control.Monad (replicateM, replicateM_) +import Papa.Base.Export.Prelude (Int, Maybe, IO, (-), (<=), otherwise)+ const ::   Applicative f =>   a@@ -14,9 +18,24 @@ const =   pure -return ::-  Applicative f =>-  a-  -> f a-return =-  pure+replicateA        :: (Applicative f) => Int -> f a -> f [a]+{-# INLINABLE replicateA #-}+{-# SPECIALISE replicateA :: Int -> IO a -> IO [a] #-}+{-# SPECIALISE replicateA :: Int -> Maybe a -> Maybe [a] #-}+replicateA cnt0 f =+    loop cnt0+  where+    loop cnt+        | cnt <= 0  = pure []+        | otherwise = liftA2 (:) f (loop (cnt - 1))++replicateA_       :: (Applicative f) => Int -> f a -> f ()+{-# INLINABLE replicateA_ #-}+{-# SPECIALISE replicateA_ :: Int -> IO a -> IO () #-}+{-# SPECIALISE replicateA_ :: Int -> Maybe a -> Maybe () #-}+replicateA_ cnt0 f =+    loop cnt0+  where+    loop cnt+        | cnt <= 0  = pure ()+        | otherwise = f *> loop (cnt - 1)
− src/Papa/Base/Implement/Data/Bool.hs
@@ -1,111 +0,0 @@-{-# LANGUAGE NoImplicitPrelude #-}--module Papa.Base.Implement.Data.Bool(-  if'-, (?.)-, (.?)-, (?<>)-, (<>?)-, (?<*>)-, (<*>?)-, (<||>)-, (<&&>)-) where--import Control.Applicative(Applicative(pure))-import Control.Category(Category(id))-import Control.Monad(Monad)-import Data.Bool(Bool(False, True), not)-import Data.Monoid--if' ::-  Bool-  -> a-  -> a-  -> a-if' True t _ =-  t-if' False _ f =-  f--(?.) ::-  Category c =>-  c a a-  -> Bool-  -> c a a-f ?. False =-  f-_ ?. True =-  id--(.?) ::-  Category c =>-  c a a-  -> Bool-  -> c a a-(.?) x y =-  (?.) x (not y)--(?<>) ::-  Monoid a =>-  a-  -> Bool-  -> a-f ?<> False =-  f-_ ?<> True =-  mempty--(<>?) ::-  Monoid a =>-  a-  -> Bool-  -> a-(<>?)  x y =-  (?<>) x (not y)--(?<*>) ::-  Applicative f =>-  (a -> f a)-  -> Bool-  -> a-  -> f a-f ?<*> False =-  f-_ ?<*> True =-  pure--(<*>?) ::-  Applicative f =>-  (a -> f a)-  -> Bool-  -> a-  -> f a-(<*>?) x y =-  (?<*>) x (not y)--(<||>) ::-  Monad m =>-  m Bool ->-  m Bool ->-  m Bool-p <||> q =-  do p' <- p-     if p'-       then-         pure True-       else-         q--(<&&>) ::-  Monad m =>-  m Bool ->-  m Bool ->-  m Bool-p <&&> q =-  do p' <- p-     if p'-       then-         q-       else-         pure False
+ src/Papa/Base/Implement/Data/Functor.hs view
@@ -0,0 +1,15 @@+{-# LANGUAGE NoImplicitPrelude #-}++module Papa.Base.Implement.Data.Functor(+  map+) where++import Data.Functor(Functor(fmap))++map ::+  Functor f =>+  (a -> b)+  -> f a+  -> f b+map =+  fmap