diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -2,9 +2,14 @@
 ==========
 <!-- Append new entries here -->
 
-0.4.1
+0.4.2
 =====
+* [!867](https://gitlab.com/morley-framework/morley/-/merge_requests/867)
+  + Hid Prelude's `&&` and `||` operators
+  + Exported `Boolean` typeclass and polymorphic `&&` and `||` operators.
 
+0.4.1
+=====
 * [!861](https://gitlab.com/morley-framework/morley/-/merge_requests/861)
   + Removed the re-export of some basic `microlens` operators from `universum`
     in favor of the ones from `lens` with the same name.
diff --git a/morley-prelude.cabal b/morley-prelude.cabal
--- a/morley-prelude.cabal
+++ b/morley-prelude.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           morley-prelude
-version:        0.4.1
+version:        0.4.2
 synopsis:       A custom prelude used in Morley
 description:    A custom prelude used in Morley. It re-exports the Universum prelude and makes some tiny changes.
 category:       Prelude
@@ -26,6 +26,7 @@
 
 library
   exposed-modules:
+      Morley.Prelude.Boolean
       Prelude
       Unsafe
   other-modules:
diff --git a/src/Morley/Prelude/Boolean.hs b/src/Morley/Prelude/Boolean.hs
new file mode 100644
--- /dev/null
+++ b/src/Morley/Prelude/Boolean.hs
@@ -0,0 +1,38 @@
+-- SPDX-FileCopyrightText: 2021 Tocqueville Group
+--
+-- SPDX-License-Identifier: LicenseRef-MIT-TQ
+
+{-# LANGUAGE NoImplicitPrelude #-}
+
+-- | This module replaces the monomorphic boolean operators from 'Prelude'
+-- with a set of polymorphic operators.
+module Morley.Prelude.Boolean
+  ( Boolean(..)
+  , ApplicativeBoolean(..)
+  ) where
+
+import Universum hiding ((&&), (||))
+import qualified Universum
+
+-- | Generalized boolean operators.
+class Boolean a where
+  (&&) :: a -> a -> a
+  (||) :: a -> a -> a
+  infixr 3 &&
+  infixr 2 ||
+
+instance Boolean Bool where
+  (&&) = (Universum.&&)
+  (||) = (Universum.||)
+
+-- | A newtype for deriving a 'Boolean' instance for any 'Applicative' type
+-- constructor using @DerivingVia@.
+newtype ApplicativeBoolean f bool = ApplicativeBoolean (f bool)
+  deriving newtype (Functor, Applicative)
+
+instance (Applicative f, Boolean bool) => Boolean (ApplicativeBoolean f bool) where
+  (&&) = liftA2 (&&)
+  (||) = liftA2 (||)
+
+deriving via (ApplicativeBoolean IO bool) instance Boolean bool => Boolean (IO bool)
+deriving via (ApplicativeBoolean ((->) a) bool) instance Boolean bool => Boolean (a -> bool)
diff --git a/src/Prelude.hs b/src/Prelude.hs
--- a/src/Prelude.hs
+++ b/src/Prelude.hs
@@ -10,11 +10,15 @@
   ( module Control.Lens
   , module Universum
   , for
+  -- * Overloaded boolean operators
+  , module Boolean
   ) where
 
-import Control.Lens (Lens, Lens', Traversal, Traversal', over, set, (%~), (&), (.~), (<&>), (^.),
-                    (^..), (^?), _1, _2, _3, _4, _5, preuse, preview, use, view)
+import Control.Lens
+  (Lens, Lens', Traversal, Traversal', _1, _2, _3, _4, _5, over, preuse, preview, set, use, view,
+  (%~), (&), (.~), (<&>), (^.), (^..), (^?))
 import Data.Traversable (for)
-import Universum hiding (Key, Nat, Val, readFile, writeFile, Lens, Lens', Traversal, Traversal',
-                         over, set, (%~), (&), (.~), (<&>), (^.), (^..), (^?), _1, _2, _3, _4, _5,
-                         preuse, preview, use, view)
+import Morley.Prelude.Boolean as Boolean
+import Universum hiding
+  (Key, Lens, Lens', Nat, Traversal, Traversal', Val, _1, _2, _3, _4, _5, over, preuse, preview,
+  readFile, set, use, view, writeFile, (%~), (&&), (&), (.~), (<&>), (^.), (^..), (^?), (||))
