diff --git a/library/Rebase/Control/Selective.hs b/library/Rebase/Control/Selective.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Control/Selective.hs
@@ -0,0 +1,7 @@
+module Rebase.Control.Selective
+(
+  module Control.Selective
+)
+where
+
+import Control.Selective
diff --git a/library/Rebase/Control/Selective/Free.hs b/library/Rebase/Control/Selective/Free.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Control/Selective/Free.hs
@@ -0,0 +1,7 @@
+module Rebase.Control.Selective.Free
+(
+  module Control.Selective.Free
+)
+where
+
+import Control.Selective.Free
diff --git a/library/Rebase/Control/Selective/Rigid/Free.hs b/library/Rebase/Control/Selective/Rigid/Free.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Control/Selective/Rigid/Free.hs
@@ -0,0 +1,7 @@
+module Rebase.Control.Selective.Rigid.Free
+(
+  module Control.Selective.Rigid.Free
+)
+where
+
+import Control.Selective.Rigid.Free
diff --git a/library/Rebase/Control/Selective/Rigid/Freer.hs b/library/Rebase/Control/Selective/Rigid/Freer.hs
new file mode 100644
--- /dev/null
+++ b/library/Rebase/Control/Selective/Rigid/Freer.hs
@@ -0,0 +1,7 @@
+module Rebase.Control.Selective.Rigid.Freer
+(
+  module Control.Selective.Rigid.Freer
+)
+where
+
+import Control.Selective.Rigid.Freer
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 (fail, Alt, first, second)
+import BasePrelude as Exports hiding (fail, Alt, first, second, orElse)
 
 -- base
 -------------------------
@@ -44,7 +44,6 @@
 
 -- semigroupoids
 -------------------------
-import Rebase.Data.Semigroupoid as Exports
 import Rebase.Data.Bifunctor.Apply as Exports
 import Rebase.Data.Functor.Alt as Exports hiding (($>), many, some, optional)
 import Rebase.Data.Functor.Apply as Exports hiding (($>))
@@ -61,6 +60,10 @@
 -------------------------
 import Rebase.Control.DeepSeq as Exports
 
+-- selective
+-------------------------
+import Rebase.Control.Selective as Exports
+
 -- transformers
 -------------------------
 import Rebase.Control.Monad.IO.Class as Exports
@@ -83,7 +86,6 @@
 -- either
 -------------------------
 import Rebase.Data.Either.Combinators as Exports hiding (isLeft, isRight, mapLeft, mapRight, fromLeft, fromRight)
-import Rebase.Data.Either.Validation as Exports
 
 -- fail
 -------------------------
@@ -142,7 +144,7 @@
 
 -- stm
 -------------------------
-import Rebase.Control.Concurrent.STM as Exports
+import Rebase.Control.Concurrent.STM as Exports hiding (orElse)
 
 -- custom
 -------------------------
diff --git a/rebase.cabal b/rebase.cabal
--- a/rebase.cabal
+++ b/rebase.cabal
@@ -1,7 +1,7 @@
 name:
   rebase
 version:
-  1.3.1.1
+  1.4
 synopsis:
   A more progressive alternative to the "base" package
 description:
@@ -127,6 +127,10 @@
     Rebase.Control.Monad.Writer.Lazy
     Rebase.Control.Monad.Writer.Strict
     Rebase.Control.Monad.Zip
+    Rebase.Control.Selective
+    Rebase.Control.Selective.Free
+    Rebase.Control.Selective.Rigid.Free
+    Rebase.Control.Selective.Rigid.Freer
     Rebase.Data.Biapplicative
     Rebase.Data.Bifoldable
     Rebase.Data.Bifunctor
@@ -437,6 +441,7 @@
     semigroups >= 0.16 && < 0.20,
     semigroupoids >= 5.2.2 && < 6,
     deepseq >= 1.4 && < 2,
+    selective >= 0.3 && < 0.4,
     transformers >= 0.4 && < 0.6,
     mtl >= 2.2 && < 3.0,
     either >= 5 && < 6,
