diff --git a/keuringsdienst.cabal b/keuringsdienst.cabal
--- a/keuringsdienst.cabal
+++ b/keuringsdienst.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           keuringsdienst
-version:        0.1.0.4
+version:        0.1.0.5
 synopsis:       Data validation in Haskell made easy.
 description:    Data validation in Haskell made easy and clean, with user rules that can be combined.
 category:       Validation, Data
diff --git a/src/Keuringsdienst.hs b/src/Keuringsdienst.hs
--- a/src/Keuringsdienst.hs
+++ b/src/Keuringsdienst.hs
@@ -22,17 +22,21 @@
 {-# LANGUAGE UndecidableInstances #-}
 
 module Keuringsdienst
-  ( (*||*),
-    (|??|),
-    (|?|),
+  ( -- * Core types
     ValidationResult,
     ValidationRule (..),
     Validation (..),
+
+    -- * Operators
     keuren,
     misschienKeuren,
     validate,
     maybeValidate,
     ofDitOfDat,
+    orThisOrThat,
+    (*||*),
+    (|??|),
+    (|?|),
   )
 where
 
@@ -40,13 +44,19 @@
 import Data.Text as T
 import GHC.Generics
 
+-- | Data type that represents the error messages. Currently is set to a simple Text,
+--  futurely this could be expanded to contain more metadata.
 type ErrMsg = Text
 
+-- | Core data type representing the outcome of a validation, which can be a success,
+--  or a failure with more information about the failure.
 data Validation err
   = Success
   | Failure err
   deriving (Eq, Show, Generic, FromJSON, ToJSON)
 
+-- | ValidationResult is the data type of choice for now, since we have chosen to implement
+-- the library in a way that it will return a [Text] as context for validation failures.
 type ValidationResult = Validation [ErrMsg]
 
 instance Semigroup ValidationResult where
@@ -61,6 +71,7 @@
 instance Monoid ValidationResult where
   mempty = Success
 
+-- | Data type representing a composable validation rule to be applied on a certain data.
 newtype ValidationRule a = ValidationRule
   { performValidation :: a -> ValidationResult
   }
@@ -74,35 +85,37 @@
 instance Monoid (ValidationRule a) where
   mempty = ValidationRule {performValidation = const Success}
 
--- keuren operator
+-- | This function applies a validation rule to a value. Stands for validate/judge in Dutch.
 keuren :: a -> ValidationRule a -> ValidationResult
 keuren x rule = performValidation rule x
 
 infixl 8 |?|
 
--- keuren operator
+-- | keuren operator
 (|?|) :: a -> ValidationRule a -> ValidationResult
 (|?|) = keuren
 
--- keuren operator
+-- | Alias to the keuren operator
 validate :: a -> ValidationRule a -> ValidationResult
 validate = keuren
 
--- misschienKeuren operator
+-- | This function applies a validation rule to a value when it is a Just and
+-- defaults to a Success in case of a Nothing. Stands for maybe validate/judge in Dutch.
 misschienKeuren :: Maybe a -> ValidationRule a -> ValidationResult
 misschienKeuren x rule = maybe Success (performValidation rule) x
 
 infixl 8 |??|
 
--- misschienKeuren operator
+-- | misschienKeuren operator
 (|??|) :: Maybe a -> ValidationRule a -> ValidationResult
 (|??|) = misschienKeuren
 
--- misschienKeuren operator
+-- | Alias to the misschienKeuren operator
 maybeValidate :: Maybe a -> ValidationRule a -> ValidationResult
 maybeValidate = misschienKeuren
 
--- if one of the validations has a successful result, then the validation is a success
+-- | If one of the validations has a successful result, then the validation is a success.
+-- Stands for or this or that in Dutch.
 ofDitOfDat :: ValidationRule a -> ValidationRule a -> ValidationRule a
 ofDitOfDat rule1 rule2 = ValidationRule $ \actual ->
   case (performValidation rule1 actual, performValidation rule2 actual) of
@@ -112,6 +125,10 @@
 
 infixl 6 *||*
 
--- ofDitOfDat operator
+-- | ofDitOfDat operator
 (*||*) :: ValidationRule a -> ValidationRule a -> ValidationRule a
 (*||*) = ofDitOfDat
+
+-- | Alias to the ofDitOfDat operator
+orThisOrThat :: ValidationRule a -> ValidationRule a -> ValidationRule a
+orThisOrThat = ofDitOfDat
diff --git a/src/Keuringsdienst/Helpers.hs b/src/Keuringsdienst/Helpers.hs
--- a/src/Keuringsdienst/Helpers.hs
+++ b/src/Keuringsdienst/Helpers.hs
@@ -40,6 +40,7 @@
 import Data.Text as T
 import Keuringsdienst as K
 
+-- | Validate that a value is equal to another.
 isEqualTo :: (Show a, Eq a) => a -> ValidationRule a
 isEqualTo value = ValidationRule $ \actual ->
   if actual == value
@@ -48,6 +49,7 @@
       Failure
         [pack $ "Expected " <> show actual <> " to equal " <> show value]
 
+-- | Validate that a value is different to another.
 isNotEqualTo :: (Show a, Eq a) => a -> ValidationRule a
 isNotEqualTo value = ValidationRule $ \actual ->
   if actual /= value
@@ -56,6 +58,7 @@
       Failure
         [pack $ "Expected " <> show actual <> " to not equal " <> show value]
 
+-- | Validate that a value is greater than another.
 isGreaterThan :: (Show a, Ord a) => a -> ValidationRule a
 isGreaterThan ruleValue = ValidationRule $ \actual ->
   if actual > ruleValue
@@ -65,6 +68,7 @@
         [ pack (show actual <> " was expected to be greater than " <> show ruleValue)
         ]
 
+-- | Validate that a value is lesser than another.
 isLesserThan :: (Show a, Ord a) => a -> ValidationRule a
 isLesserThan ruleValue = ValidationRule $ \actual ->
   if actual < ruleValue
@@ -74,12 +78,14 @@
         [ pack (show actual <> " was expected to be lesser than " <> show ruleValue)
         ]
 
+-- | Validate that a value is a non empty @Text@.
 isNonEmptyText :: ValidationRule Text
 isNonEmptyText = ValidationRule $ \actual ->
   if T.null actual
     then Failure [T.pack "Text was expected to be non-empty"]
     else Success
 
+-- | Validate that a value is a @Text@ of certain length.
 isTextOfLength :: Int -> ValidationRule Text
 isTextOfLength ruleValue = ValidationRule $ \actual -> do
   let actualTextLength = T.length actual
@@ -95,6 +101,7 @@
         ]
     else Success
 
+-- | Validate that a value is a @Text@ of length smaller than n.
 isTextSmallerThan :: Int -> ValidationRule Text
 isTextSmallerThan ruleValue = ValidationRule $ \actual -> do
   let actualTextLength = T.length actual
@@ -110,6 +117,7 @@
         ]
     else Success
 
+-- | Validate that a value is a @Text@ of length smaller or equal to n.
 isTextSmallerThanOrEqual :: Int -> ValidationRule Text
 isTextSmallerThanOrEqual ruleValue = ValidationRule $ \actual -> do
   let actualTextLength = T.length actual
@@ -125,18 +133,23 @@
         ]
     else Success
 
+-- | Validate that a value is lesser than 0.
 isNegative :: ValidationRule Int
 isNegative = isLesserThan 0
 
+-- | Validate that a value is greater than 0.
 isPositive :: ValidationRule Int
 isPositive = isGreaterThan 0
 
+-- | Validate that a value is positive or zero.
 isPositiveOrZero :: ValidationRule Int
 isPositiveOrZero = isPositive *||* isEqualTo 0
 
+-- | Validate that a value is negative or zero.
 isNegativeOrZero :: ValidationRule Int
 isNegativeOrZero = isNegative *||* isEqualTo 0
 
+-- | Filter a Map of @Validation err@ and keep only the failures.
 filterFailedValidations :: Map Text (Validation err) -> Map Text (Validation err)
 filterFailedValidations =
   Map.filter
