diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -17,3 +17,9 @@
 
 * First version revised C. Updated the metadata.
 
+## 0.1.3.0 -- 2023-01-12
+
+* First version revised D. Removed implicit Prelude import, changed the dependency boundaries. Code
+now can throw an error or pattern match exception if the data type is contructed not validly 
+(to prevent usage of the incorrectly defined data).
+
diff --git a/Logical/OrdConstraints.hs b/Logical/OrdConstraints.hs
--- a/Logical/OrdConstraints.hs
+++ b/Logical/OrdConstraints.hs
@@ -1,21 +1,34 @@
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_HADDOCK show-extensions #-}
+
 -- |
 -- Module      :  Logical.OrdConstraints
--- Copyright   :  (c) Oleksandr Zhabenko 2022
+-- Copyright   :  (c) Oleksandr Zhabenko 2022-2023
 -- License     :  MIT
 -- Stability   :  Experimental
 -- Maintainer  :  oleksandr.zhabenko@yahoo.com
 --
 -- Some simple logical encoding 'syntactical sugar' to represent point-wise or intervals-based logics.
+-- If you would like to use data types not in the functions of the module  imported, but in your
+-- own ones, please, consider using before the 'validOrdCs' function for them. If you use just
+-- the functions defined here, you do not need to use it before because it is used internally.
 
 module Logical.OrdConstraints where
 
-import Data.Foldable
-import Data.Maybe
+import Control.Exception
+import Data.Foldable (Foldable, any)
+import GHC.Base hiding (O)
+import GHC.List hiding (any)
+import Text.Show 
+import Text.Read
+import GHC.Real (rem)
+import Data.Maybe (fromMaybe)
 
 -- | Data type to encode the simple logical contstraints for some 'Ord'ered data type value to be kept in some bounds (to lay in some intervals or points). 'O' constructor  encodes
 -- point-wise logics, and 'C' encodes intervals logics.
 data OrdConstraints a = O [a] | C [a] deriving (Eq, Ord, Show, Read)
 
+-- | Primary intention: the @t@ here refers to 'Foldable' @t@.
 type OrdCs t a = t (OrdConstraints a)
 
 -- | The predicate to check whether the data is  encoded logically correct just enough to be used by the functions in the library (minimal necessary validation). Checks whether 
@@ -28,12 +41,12 @@
 ordCs2Predicate1 :: Ord a => OrdConstraints a -> a -> Bool
 ordCs2Predicate1 x@(O xs) y
  | validOrdCs x = any (== y) xs
- | otherwise = False
+ | otherwise = error "Logical.OrdConstraints.ordCs2Predicate1: Not valid logical constraint by constrution semantics."
 ordCs2Predicate1 x@(C xs) y
  | validOrdCs x = any (\(t:u:_) -> y >= t && y <= u) . f $ xs
- | otherwise = False
+ | otherwise = error "Logical.OrdConstraints.ordCs2Predicate1: Not valid logical constraint by constrution semantics." 
     where f (x:y:xs) = [x,y]:f xs
-          f _ = []
+          f [] = []
 
 ordCs2HPred1 :: (Ord a, Foldable t1) => OrdCs t1 a -> a -> Bool
 ordCs2HPred1 cs y = any (\c -> ordCs2Predicate1 c y) $ cs
@@ -54,12 +67,12 @@
 ordCs2PredicateG :: (Ord a, Foldable t) => OrdConstraints a -> (t a -> Maybe a) -> t a -> Bool
 ordCs2PredicateG x@(O xs) p ys
  | validOrdCs x = any (\k -> (fromMaybe False . fmap (== k) . p $ ys)) xs
- | otherwise = False
+ | otherwise = error "Logical.OrdConstraints.ordCs2PredicateG: Not valid logical constraint by constrution semantics."
 ordCs2PredicateG x@(C xs) p ys
  | validOrdCs x = any (\(t:u:_) -> fromMaybe False . fmap (\k -> k >= t && k <= u) . p $ ys) . f $ xs
- | otherwise = False
+ | otherwise = error "Logical.OrdConstraints.ordCs2PredicateG: Not valid logical constraint by constrution semantics."
     where f (x:y:xs) = [x,y]:f xs
-          f _ = []
+          f [] = []
 
 ordCs2HPredG :: (Ord a, Foldable t, Foldable t1) => OrdCs t1 a -> (t a -> Maybe a) -> t a -> Bool
 ordCs2HPredG cs p ys = any (\c -> ordCs2PredicateG c p ys) $ cs
diff --git a/logical-constraints.cabal b/logical-constraints.cabal
--- a/logical-constraints.cabal
+++ b/logical-constraints.cabal
@@ -1,12 +1,12 @@
 cabal-version:      2.4
 name:               logical-constraints
-version:            0.1.2.0
+version:            0.1.3.0
 
 -- A short (one-line) description of the package.
 synopsis:           Simple logical constraints 'syntax-sugar' writing library.
 
 -- A longer description of the package.
-description:        Some library functions and data to simplify the writing of the simple logical constraints of Ord classes data instances.
+description:        Some library functions and data to simplify the writing of the simple logical constraints of Ord class data instances so that it represents point-wise and interval-based logics.
 
 -- A URL where users can report bugs.
 bug-reports:        https://github.com/Oleksandr-Zhabenko/logical-constraints/issues
@@ -26,7 +26,7 @@
     exposed-modules:  Logical.OrdConstraints
 
     -- LANGUAGE extensions used by modules in this package.
-    -- other-extensions:
-    build-depends:    base >=4.7 && <5
+    other-extensions: NoImplicitPrelude
+    build-depends:    base >=4.13 && <5
     default-language: Haskell2010
 
