diff --git a/changelog b/changelog
deleted file mode 100644
--- a/changelog
+++ /dev/null
@@ -1,3 +0,0 @@
-0.2.0
-
-* Initial release.
diff --git a/changelog.md b/changelog.md
new file mode 100644
--- /dev/null
+++ b/changelog.md
@@ -0,0 +1,3 @@
+0.2.0
+
+* Initial release.
diff --git a/papa-base-implement.cabal b/papa-base-implement.cabal
--- a/papa-base-implement.cabal
+++ b/papa-base-implement.cabal
@@ -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
diff --git a/src/Papa/Base/Implement.hs b/src/Papa/Base/Implement.hs
--- a/src/Papa/Base/Implement.hs
+++ b/src/Papa/Base/Implement.hs
@@ -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
diff --git a/src/Papa/Base/Implement/Control/Applicative.hs b/src/Papa/Base/Implement/Control/Applicative.hs
--- a/src/Papa/Base/Implement/Control/Applicative.hs
+++ b/src/Papa/Base/Implement/Control/Applicative.hs
@@ -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)
diff --git a/src/Papa/Base/Implement/Data/Bool.hs b/src/Papa/Base/Implement/Data/Bool.hs
deleted file mode 100644
--- a/src/Papa/Base/Implement/Data/Bool.hs
+++ /dev/null
@@ -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
diff --git a/src/Papa/Base/Implement/Data/Functor.hs b/src/Papa/Base/Implement/Data/Functor.hs
new file mode 100644
--- /dev/null
+++ b/src/Papa/Base/Implement/Data/Functor.hs
@@ -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
