diff --git a/prologue.cabal b/prologue.cabal
--- a/prologue.cabal
+++ b/prologue.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 6bf442b119d920bdb4e10b74b62f5eb4ae96bb065d13b1d1758bc3b2cfa1515b
+-- hash: 0d3ce02fd563a6feeecf96713b122417c0e8937b206c68d86e9442b066041809
 
 name:           prologue
-version:        3.1.3
+version:        3.1.4
 synopsis:       Better, more general Prelude exporting common utilities.
 description:    Replacement for the Haskell's Prelude, exposing more commonly used functions and patching old GHC ones to behave in the newest GHC's way.
 category:       control
@@ -67,6 +67,7 @@
     , vector
   exposed-modules:
       Data.Default.Instances.Missing
+      Data.List.Utils
       Data.String.Class
       Data.Tuple.Curry.Total
       Data.Typeable.Proxy.Abbr
diff --git a/src/Data/List/Utils.hs b/src/Data/List/Utils.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/List/Utils.hs
@@ -0,0 +1,13 @@
+module Data.List.Utils where
+
+import Prelude
+
+class SplitOn s a where
+    splitOn :: s -> a -> [a]
+
+instance Eq a => SplitOn a [a] where
+    splitOn t = reverse . fmap reverse . go [] [] where
+        go done current = \case
+            []     -> (if null current then id else (current:)) $ done
+            (a:as) -> if a == t then go (current:done) [] as
+                                else go done (a:current)  as
