diff --git a/library/Rebase/Data/Bifunctor/Apply.hs b/library/Rebase/Data/Bifunctor/Apply.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Data/Bifunctor/Apply.hs
@@ -0,0 +1,7 @@
+module Rebase.Data.Bifunctor.Apply
+(
+  module Data.Bifunctor.Apply,
+)
+where
+
+import Data.Bifunctor.Apply
diff --git a/library/Rebase/Data/Functor/Alt.hs b/library/Rebase/Data/Functor/Alt.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Data/Functor/Alt.hs
@@ -0,0 +1,7 @@
+module Rebase.Data.Functor.Alt
+(
+  module Data.Functor.Alt,
+)
+where
+
+import Data.Functor.Alt
diff --git a/library/Rebase/Data/Functor/Apply.hs b/library/Rebase/Data/Functor/Apply.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Data/Functor/Apply.hs
@@ -0,0 +1,7 @@
+module Rebase.Data.Functor.Apply
+(
+  module Data.Functor.Apply,
+)
+where
+
+import Data.Functor.Apply
diff --git a/library/Rebase/Data/Functor/Bind.hs b/library/Rebase/Data/Functor/Bind.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Data/Functor/Bind.hs
@@ -0,0 +1,7 @@
+module Rebase.Data.Functor.Bind
+(
+  module Data.Functor.Bind,
+)
+where
+
+import Data.Functor.Bind
diff --git a/library/Rebase/Data/Functor/Extend.hs b/library/Rebase/Data/Functor/Extend.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Data/Functor/Extend.hs
@@ -0,0 +1,7 @@
+module Rebase.Data.Functor.Extend
+(
+  module Data.Functor.Extend,
+)
+where
+
+import Data.Functor.Extend
diff --git a/library/Rebase/Data/Functor/Plus.hs b/library/Rebase/Data/Functor/Plus.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Data/Functor/Plus.hs
@@ -0,0 +1,7 @@
+module Rebase.Data.Functor.Plus
+(
+  module Data.Functor.Plus,
+)
+where
+
+import Data.Functor.Plus
diff --git a/library/Rebase/Data/Semigroup.hs b/library/Rebase/Data/Semigroup.hs
--- a/library/Rebase/Data/Semigroup.hs
+++ b/library/Rebase/Data/Semigroup.hs
@@ -1,7 +1,11 @@
 module Rebase.Data.Semigroup
 (
   module Data.Semigroup,
+  sappend,
 )
 where
 
 import Data.Semigroup
+
+sappend =
+  (<>)
diff --git a/library/Rebase/Data/Semigroup/Bifoldable.hs b/library/Rebase/Data/Semigroup/Bifoldable.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Data/Semigroup/Bifoldable.hs
@@ -0,0 +1,7 @@
+module Rebase.Data.Semigroup.Bifoldable
+(
+  module Data.Semigroup.Bifoldable,
+)
+where
+
+import Data.Semigroup.Bifoldable
diff --git a/library/Rebase/Data/Semigroup/Bitraversable.hs b/library/Rebase/Data/Semigroup/Bitraversable.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Data/Semigroup/Bitraversable.hs
@@ -0,0 +1,7 @@
+module Rebase.Data.Semigroup.Bitraversable
+(
+  module Data.Semigroup.Bitraversable,
+)
+where
+
+import Data.Semigroup.Bitraversable
diff --git a/library/Rebase/Data/Semigroup/Foldable.hs b/library/Rebase/Data/Semigroup/Foldable.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Data/Semigroup/Foldable.hs
@@ -0,0 +1,7 @@
+module Rebase.Data.Semigroup.Foldable
+(
+  module Data.Semigroup.Foldable,
+)
+where
+
+import Data.Semigroup.Foldable
diff --git a/library/Rebase/Data/Semigroup/Traversable.hs b/library/Rebase/Data/Semigroup/Traversable.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Data/Semigroup/Traversable.hs
@@ -0,0 +1,7 @@
+module Rebase.Data.Semigroup.Traversable
+(
+  module Data.Semigroup.Traversable,
+)
+where
+
+import Data.Semigroup.Traversable
diff --git a/library/Rebase/Data/Semigroupoid.hs b/library/Rebase/Data/Semigroupoid.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Data/Semigroupoid.hs
@@ -0,0 +1,7 @@
+module Rebase.Data.Semigroupoid
+(
+  module Data.Semigroupoid,
+)
+where
+
+import Data.Semigroupoid
diff --git a/library/Rebase/Prelude.hs b/library/Rebase/Prelude.hs
--- a/library/Rebase/Prelude.hs
+++ b/library/Rebase/Prelude.hs
@@ -13,7 +13,7 @@
 
 -- base-prelude
 -------------------------
-import BasePrelude as Exports hiding (Last(..), First(..), (<>), first, second, fail)
+import BasePrelude as Exports hiding (fail, Alt)
 
 -- base
 -------------------------
@@ -36,8 +36,23 @@
 
 -- semigroups
 -------------------------
-import Rebase.Data.Semigroup as Exports
+import Rebase.Data.Semigroup as Exports hiding ((<>), Last(..), First(..))
 import Rebase.Data.List.NonEmpty as Exports (NonEmpty)
+
+-- semigroupoids
+-------------------------
+import Rebase.Data.Semigroupoid as Exports
+import Rebase.Data.Bifunctor.Apply as Exports
+import Rebase.Data.Functor.Alt as Exports hiding (($>), many, some)
+import Rebase.Data.Functor.Apply as Exports hiding (($>))
+import Rebase.Data.Functor.Bind as Exports hiding (join, ($>))
+import Rebase.Data.Functor.Extend as Exports
+import Rebase.Data.Functor.Plus as Exports hiding (($>), some, many)
+import Rebase.Data.Semigroup.Bifoldable as Exports
+import Rebase.Data.Semigroup.Bitraversable as Exports
+import Rebase.Data.Semigroup.Foldable as Exports
+import Rebase.Data.Semigroup.Traversable as Exports
+import Rebase.Data.Semigroupoid as Exports
 
 -- deepseq
 -------------------------
diff --git a/rebase.cabal b/rebase.cabal
--- a/rebase.cabal
+++ b/rebase.cabal
@@ -1,7 +1,7 @@
 name:
   rebase
 version:
-  0.5.4
+  1
 synopsis:
   A more progressive alternative to the "base" package
 description:
@@ -53,7 +53,7 @@
   hs-source-dirs:
     library
   default-extensions:
-    NoImplicitPrelude
+    NoImplicitPrelude, NoMonomorphismRestriction
   default-language:
     Haskell2010
   other-modules:
@@ -112,6 +112,18 @@
     -- semigroups:
     Rebase.Data.Semigroup
     Rebase.Data.List.NonEmpty
+    -- semigroupoids:
+    Rebase.Data.Bifunctor.Apply
+    Rebase.Data.Functor.Alt
+    Rebase.Data.Functor.Apply
+    Rebase.Data.Functor.Bind
+    Rebase.Data.Functor.Extend
+    Rebase.Data.Functor.Plus
+    Rebase.Data.Semigroup.Bifoldable
+    Rebase.Data.Semigroup.Bitraversable
+    Rebase.Data.Semigroup.Foldable
+    Rebase.Data.Semigroup.Traversable
+    Rebase.Data.Semigroupoid
     -- deepseq:
     Rebase.Control.DeepSeq
     -- transformers:
@@ -156,11 +168,12 @@
     contravariant >= 1.4 && < 2,
     contravariant-extras >= 0.3.2 && < 0.4,
     semigroups >= 0.18 && < 0.19,
+    semigroupoids >= 5.1 && < 6,
     deepseq >= 1.4 && < 2,
     transformers >= 0.4 && < 0.6,
     mtl >= 2.2 && < 3.0,
     either >= 4.4 && < 5,
     fail >= 4.9 && < 5,
     -- general:
-    base-prelude >= 0.1.21 && < 2,
+    base-prelude >= 1 && < 2,
     base >= 4.6 && < 5
