New Upstream Release - vavr0

Ready changes

Summary

Merged new upstream version: 0.10.4 (was: 0.10.3).

Resulting package

Built on 2022-03-10T12:13 (took 5m2s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-releases libvavr0-java

Lintian Result

Diff

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index e3ec4f40..e036f88b 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -49,7 +49,7 @@ _Source: http://users.ece.utexas.edu/~adnan/pike.html_
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/debian/changelog b/debian/changelog
index 3b09749a..b45717ed 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+vavr0 (0.10.4-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Thu, 10 Mar 2022 12:09:45 -0000
+
 vavr0 (0.10.3-2) unstable; urgency=medium
 
   * Team upload.
diff --git a/debian/patches/ignore-warnings.patch b/debian/patches/ignore-warnings.patch
index b4bedcb2..8af5bd08 100644
--- a/debian/patches/ignore-warnings.patch
+++ b/debian/patches/ignore-warnings.patch
@@ -1,9 +1,11 @@
 Description: Don't break the build on compiler warnings (fixes build issues with recent JDKs)
 Author: Emmanuel Bourg <ebourg@apache.org>
 Forwarded: not-needed
---- a/pom.xml
-+++ b/pom.xml
-@@ -255,7 +255,6 @@
+Index: vavr0/pom.xml
+===================================================================
+--- vavr0.orig/pom.xml
++++ vavr0/pom.xml
+@@ -255,7 +255,6 @@ We use these goals frequently to keep th
                          <showDeprecation>true</showDeprecation>
                          <showWarnings>true</showWarnings>
                          <compilerArgs>
diff --git a/pom.xml b/pom.xml
index 931b43d7..96ba6ec8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@ We use these goals frequently to keep the dependencies and plugins up-to-date:
     </parent>
     <groupId>io.vavr</groupId>
     <artifactId>vavr-parent</artifactId>
-    <version>0.10.3</version>
+    <version>0.10.4</version>
     <packaging>pom</packaging>
     <name>Vavr Parent</name>
     <description>Vavr (formerly called Javaslang) is an object-functional language extension to Java 8+.</description>
@@ -49,7 +49,7 @@ We use these goals frequently to keep the dependencies and plugins up-to-date:
         <connection>scm:git:git@github.com:vavr-io/vavr.git</connection>
         <developerConnection>scm:git:git@github.com:vavr-io/vavr.git</developerConnection>
         <url>git@github.com:vavr-io/vavr.git</url>
-        <tag>v0.10.3</tag>
+        <tag>v0.10.4</tag>
     </scm>
     <developers>
         <developer>
diff --git a/update_copyright.sh b/update_copyright.sh
index b27c4a36..67c42d51 100755
--- a/update_copyright.sh
+++ b/update_copyright.sh
@@ -13,4 +13,4 @@ echo "Updating copyright notice to $newYear"
 # Exclude specific directories: -type d \( -path ./.git -o -path ./.ide \) -prune -o
 # Make sed work on Mac: sed -e
 # Prevent making backups: -i ''
-find . -type d \( -path ./.git -o -path ./.ide \) -prune -o -type f -print0 | xargs -0 sed -i '' -e "s/Copyright 2014-2020 Vavr/Copyright 2014-$newYear Vavr/"
+find . -type d \( -path ./.git -o -path ./.ide \) -prune -o -type f -print0 | xargs -0 sed -i '' -e "s/Copyright 2014-2021 Vavr/Copyright 2014-$newYear Vavr/"
diff --git a/vavr-benchmark/pom.xml b/vavr-benchmark/pom.xml
index d7f8f249..d9f57c6c 100644
--- a/vavr-benchmark/pom.xml
+++ b/vavr-benchmark/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <groupId>io.vavr</groupId>
         <artifactId>vavr-parent</artifactId>
-        <version>0.10.3</version>
+        <version>0.10.4</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>vavr-benchmark</artifactId>
diff --git a/vavr-benchmark/src/test/java/io/vavr/BenchmarkPerformanceReporter.java b/vavr-benchmark/src/test/java/io/vavr/BenchmarkPerformanceReporter.java
index 31f1bfd3..e1b2da22 100644
--- a/vavr-benchmark/src/test/java/io/vavr/BenchmarkPerformanceReporter.java
+++ b/vavr-benchmark/src/test/java/io/vavr/BenchmarkPerformanceReporter.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-benchmark/src/test/java/io/vavr/JmhRunner.java b/vavr-benchmark/src/test/java/io/vavr/JmhRunner.java
index d6cbd58a..709b6408 100644
--- a/vavr-benchmark/src/test/java/io/vavr/JmhRunner.java
+++ b/vavr-benchmark/src/test/java/io/vavr/JmhRunner.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-benchmark/src/test/java/io/vavr/MemoryUsage.java b/vavr-benchmark/src/test/java/io/vavr/MemoryUsage.java
index 1a1d222a..4ec5aab3 100644
--- a/vavr-benchmark/src/test/java/io/vavr/MemoryUsage.java
+++ b/vavr-benchmark/src/test/java/io/vavr/MemoryUsage.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-benchmark/src/test/java/io/vavr/collection/ArrayBenchmark.java b/vavr-benchmark/src/test/java/io/vavr/collection/ArrayBenchmark.java
index 33f7a627..4c0438f5 100644
--- a/vavr-benchmark/src/test/java/io/vavr/collection/ArrayBenchmark.java
+++ b/vavr-benchmark/src/test/java/io/vavr/collection/ArrayBenchmark.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-benchmark/src/test/java/io/vavr/collection/BitSetBenchmark.java b/vavr-benchmark/src/test/java/io/vavr/collection/BitSetBenchmark.java
index b5e72eb3..bba54ccc 100644
--- a/vavr-benchmark/src/test/java/io/vavr/collection/BitSetBenchmark.java
+++ b/vavr-benchmark/src/test/java/io/vavr/collection/BitSetBenchmark.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-benchmark/src/test/java/io/vavr/collection/CharSeqBenchmark.java b/vavr-benchmark/src/test/java/io/vavr/collection/CharSeqBenchmark.java
index d353597e..3152a0e7 100644
--- a/vavr-benchmark/src/test/java/io/vavr/collection/CharSeqBenchmark.java
+++ b/vavr-benchmark/src/test/java/io/vavr/collection/CharSeqBenchmark.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-benchmark/src/test/java/io/vavr/collection/HashSetBenchmark.java b/vavr-benchmark/src/test/java/io/vavr/collection/HashSetBenchmark.java
index 18f5c167..e4e799b6 100644
--- a/vavr-benchmark/src/test/java/io/vavr/collection/HashSetBenchmark.java
+++ b/vavr-benchmark/src/test/java/io/vavr/collection/HashSetBenchmark.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-benchmark/src/test/java/io/vavr/collection/IteratorBenchmark.java b/vavr-benchmark/src/test/java/io/vavr/collection/IteratorBenchmark.java
index 70d1f27e..1e07e4d5 100644
--- a/vavr-benchmark/src/test/java/io/vavr/collection/IteratorBenchmark.java
+++ b/vavr-benchmark/src/test/java/io/vavr/collection/IteratorBenchmark.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-benchmark/src/test/java/io/vavr/collection/ListBenchmark.java b/vavr-benchmark/src/test/java/io/vavr/collection/ListBenchmark.java
index f3929645..01d87da4 100644
--- a/vavr-benchmark/src/test/java/io/vavr/collection/ListBenchmark.java
+++ b/vavr-benchmark/src/test/java/io/vavr/collection/ListBenchmark.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-benchmark/src/test/java/io/vavr/collection/MapBenchmark.java b/vavr-benchmark/src/test/java/io/vavr/collection/MapBenchmark.java
index 8fc8ee37..ca79cb69 100644
--- a/vavr-benchmark/src/test/java/io/vavr/collection/MapBenchmark.java
+++ b/vavr-benchmark/src/test/java/io/vavr/collection/MapBenchmark.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-benchmark/src/test/java/io/vavr/collection/PriorityQueueBenchmark.java b/vavr-benchmark/src/test/java/io/vavr/collection/PriorityQueueBenchmark.java
index 2bf14b10..25d64a52 100644
--- a/vavr-benchmark/src/test/java/io/vavr/collection/PriorityQueueBenchmark.java
+++ b/vavr-benchmark/src/test/java/io/vavr/collection/PriorityQueueBenchmark.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-benchmark/src/test/java/io/vavr/collection/VectorBenchmark.java b/vavr-benchmark/src/test/java/io/vavr/collection/VectorBenchmark.java
index ac6cddea..d2397fd7 100644
--- a/vavr-benchmark/src/test/java/io/vavr/collection/VectorBenchmark.java
+++ b/vavr-benchmark/src/test/java/io/vavr/collection/VectorBenchmark.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-benchmark/src/test/java/io/vavr/control/LazyBenchmark.java b/vavr-benchmark/src/test/java/io/vavr/control/LazyBenchmark.java
index 0da02b7a..7c53347e 100644
--- a/vavr-benchmark/src/test/java/io/vavr/control/LazyBenchmark.java
+++ b/vavr-benchmark/src/test/java/io/vavr/control/LazyBenchmark.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-benchmark/src/test/java/io/vavr/idiom/ForBenchmark.java b/vavr-benchmark/src/test/java/io/vavr/idiom/ForBenchmark.java
index f74a3d4d..4a7e9d96 100644
--- a/vavr-benchmark/src/test/java/io/vavr/idiom/ForBenchmark.java
+++ b/vavr-benchmark/src/test/java/io/vavr/idiom/ForBenchmark.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-benchmark/src/test/java/io/vavr/idiom/PatternMatchingBenchmark.java b/vavr-benchmark/src/test/java/io/vavr/idiom/PatternMatchingBenchmark.java
index 5fb7db94..f436b216 100644
--- a/vavr-benchmark/src/test/java/io/vavr/idiom/PatternMatchingBenchmark.java
+++ b/vavr-benchmark/src/test/java/io/vavr/idiom/PatternMatchingBenchmark.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-benchmark/src/test/java/io/vavr/idiom/TryBenchmark.java b/vavr-benchmark/src/test/java/io/vavr/idiom/TryBenchmark.java
index a62dfa04..208a0804 100644
--- a/vavr-benchmark/src/test/java/io/vavr/idiom/TryBenchmark.java
+++ b/vavr-benchmark/src/test/java/io/vavr/idiom/TryBenchmark.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-benchmark/src/test/java/io/vavr/idiom/TupleBenchmark.java b/vavr-benchmark/src/test/java/io/vavr/idiom/TupleBenchmark.java
index 9830d43c..d0bf17d2 100644
--- a/vavr-benchmark/src/test/java/io/vavr/idiom/TupleBenchmark.java
+++ b/vavr-benchmark/src/test/java/io/vavr/idiom/TupleBenchmark.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-match-processor/pom.xml b/vavr-match-processor/pom.xml
index 4949ab3b..f57bc91a 100644
--- a/vavr-match-processor/pom.xml
+++ b/vavr-match-processor/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <groupId>io.vavr</groupId>
         <artifactId>vavr-parent</artifactId>
-        <version>0.10.3</version>
+        <version>0.10.4</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>vavr-match-processor</artifactId>
diff --git a/vavr-match-processor/src/main/java/io/vavr/match/PatternsProcessor.java b/vavr-match-processor/src/main/java/io/vavr/match/PatternsProcessor.java
index ad2c9ce9..c5bdc6d0 100644
--- a/vavr-match-processor/src/main/java/io/vavr/match/PatternsProcessor.java
+++ b/vavr-match-processor/src/main/java/io/vavr/match/PatternsProcessor.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-match-processor/src/main/java/io/vavr/match/UnapplyChecker.java b/vavr-match-processor/src/main/java/io/vavr/match/UnapplyChecker.java
index 33412a9d..ea38be18 100644
--- a/vavr-match-processor/src/main/java/io/vavr/match/UnapplyChecker.java
+++ b/vavr-match-processor/src/main/java/io/vavr/match/UnapplyChecker.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-match-processor/src/main/java/io/vavr/match/generator/Generator.java b/vavr-match-processor/src/main/java/io/vavr/match/generator/Generator.java
index 2feb1c0a..57cc9c35 100644
--- a/vavr-match-processor/src/main/java/io/vavr/match/generator/Generator.java
+++ b/vavr-match-processor/src/main/java/io/vavr/match/generator/Generator.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-match-processor/src/main/java/io/vavr/match/generator/ImportManager.java b/vavr-match-processor/src/main/java/io/vavr/match/generator/ImportManager.java
index d913cc26..8b972707 100644
--- a/vavr-match-processor/src/main/java/io/vavr/match/generator/ImportManager.java
+++ b/vavr-match-processor/src/main/java/io/vavr/match/generator/ImportManager.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-match-processor/src/main/java/io/vavr/match/model/ClassModel.java b/vavr-match-processor/src/main/java/io/vavr/match/model/ClassModel.java
index d198c406..1aa3fa2a 100644
--- a/vavr-match-processor/src/main/java/io/vavr/match/model/ClassModel.java
+++ b/vavr-match-processor/src/main/java/io/vavr/match/model/ClassModel.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-match-processor/src/main/java/io/vavr/match/model/MethodModel.java b/vavr-match-processor/src/main/java/io/vavr/match/model/MethodModel.java
index 67b5e56c..f84c5142 100644
--- a/vavr-match-processor/src/main/java/io/vavr/match/model/MethodModel.java
+++ b/vavr-match-processor/src/main/java/io/vavr/match/model/MethodModel.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-match-processor/src/main/java/io/vavr/match/model/ParameterModel.java b/vavr-match-processor/src/main/java/io/vavr/match/model/ParameterModel.java
index e9a9ff21..5f29053b 100644
--- a/vavr-match-processor/src/main/java/io/vavr/match/model/ParameterModel.java
+++ b/vavr-match-processor/src/main/java/io/vavr/match/model/ParameterModel.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-match-processor/src/main/java/io/vavr/match/model/TypeParameterModel.java b/vavr-match-processor/src/main/java/io/vavr/match/model/TypeParameterModel.java
index 5ad37973..dc459d54 100644
--- a/vavr-match-processor/src/main/java/io/vavr/match/model/TypeParameterModel.java
+++ b/vavr-match-processor/src/main/java/io/vavr/match/model/TypeParameterModel.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-match/pom.xml b/vavr-match/pom.xml
index adcfe642..115bafc2 100644
--- a/vavr-match/pom.xml
+++ b/vavr-match/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <groupId>io.vavr</groupId>
         <artifactId>vavr-parent</artifactId>
-        <version>0.10.3</version>
+        <version>0.10.4</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>vavr-match</artifactId>
diff --git a/vavr-match/src/main/java/io/vavr/match/annotation/Patterns.java b/vavr-match/src/main/java/io/vavr/match/annotation/Patterns.java
index 6edf533f..311c2a83 100644
--- a/vavr-match/src/main/java/io/vavr/match/annotation/Patterns.java
+++ b/vavr-match/src/main/java/io/vavr/match/annotation/Patterns.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-match/src/main/java/io/vavr/match/annotation/Unapply.java b/vavr-match/src/main/java/io/vavr/match/annotation/Unapply.java
index c8636220..fa429de2 100644
--- a/vavr-match/src/main/java/io/vavr/match/annotation/Unapply.java
+++ b/vavr-match/src/main/java/io/vavr/match/annotation/Unapply.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-test/generator/Generator.scala b/vavr-test/generator/Generator.scala
index 65893fda..c01f08cc 100644
--- a/vavr-test/generator/Generator.scala
+++ b/vavr-test/generator/Generator.scala
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -692,7 +692,7 @@ def genVavrFile(packageName: String, className: String, baseDir: String = TARGET
      *  \  \/  /  /\  \  \/  /  /
      *   \____/__/  \__\____/__/
      *
-     * Copyright 2014-2020 Vavr, http://vavr.io
+     * Copyright 2014-2021 Vavr, http://vavr.io
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
diff --git a/vavr-test/pom.xml b/vavr-test/pom.xml
index 2492f612..25089036 100644
--- a/vavr-test/pom.xml
+++ b/vavr-test/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <groupId>io.vavr</groupId>
         <artifactId>vavr-parent</artifactId>
-        <version>0.10.3</version>
+        <version>0.10.4</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>vavr-test</artifactId>
diff --git a/vavr-test/src-gen/main/java/io/vavr/test/Property.java b/vavr-test/src-gen/main/java/io/vavr/test/Property.java
index 235b6671..2220d09a 100644
--- a/vavr-test/src-gen/main/java/io/vavr/test/Property.java
+++ b/vavr-test/src-gen/main/java/io/vavr/test/Property.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck1Test.java b/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck1Test.java
index e3ca7d40..206a834a 100644
--- a/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck1Test.java
+++ b/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck1Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck2Test.java b/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck2Test.java
index 7098c458..7fdfdcf3 100644
--- a/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck2Test.java
+++ b/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck2Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck3Test.java b/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck3Test.java
index 84ab124d..880ca314 100644
--- a/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck3Test.java
+++ b/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck3Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck4Test.java b/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck4Test.java
index 3810f6cc..3f9a3093 100644
--- a/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck4Test.java
+++ b/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck4Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck5Test.java b/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck5Test.java
index a0b9013d..d2b320ce 100644
--- a/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck5Test.java
+++ b/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck5Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck6Test.java b/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck6Test.java
index 3ea5a4d9..ed545994 100644
--- a/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck6Test.java
+++ b/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck6Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck7Test.java b/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck7Test.java
index 0ac3b1d4..897e52c3 100644
--- a/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck7Test.java
+++ b/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck7Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck8Test.java b/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck8Test.java
index d6eb6eb4..126f28d8 100644
--- a/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck8Test.java
+++ b/vavr-test/src-gen/test/java/io/vavr/test/PropertyCheck8Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-test/src-gen/test/java/io/vavr/test/PropertyTest.java b/vavr-test/src-gen/test/java/io/vavr/test/PropertyTest.java
index d4dfeac6..d122de96 100644
--- a/vavr-test/src-gen/test/java/io/vavr/test/PropertyTest.java
+++ b/vavr-test/src-gen/test/java/io/vavr/test/PropertyTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-test/src/main/java/io/vavr/test/Arbitrary.java b/vavr-test/src/main/java/io/vavr/test/Arbitrary.java
index fc0b0a84..de0757b4 100644
--- a/vavr-test/src/main/java/io/vavr/test/Arbitrary.java
+++ b/vavr-test/src/main/java/io/vavr/test/Arbitrary.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-test/src/main/java/io/vavr/test/CheckResult.java b/vavr-test/src/main/java/io/vavr/test/CheckResult.java
index 422206fc..0054f121 100644
--- a/vavr-test/src/main/java/io/vavr/test/CheckResult.java
+++ b/vavr-test/src/main/java/io/vavr/test/CheckResult.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-test/src/main/java/io/vavr/test/Checkable.java b/vavr-test/src/main/java/io/vavr/test/Checkable.java
index 67e877b4..5b5d9e85 100644
--- a/vavr-test/src/main/java/io/vavr/test/Checkable.java
+++ b/vavr-test/src/main/java/io/vavr/test/Checkable.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-test/src/main/java/io/vavr/test/Gen.java b/vavr-test/src/main/java/io/vavr/test/Gen.java
index a28fda39..40eed632 100644
--- a/vavr-test/src/main/java/io/vavr/test/Gen.java
+++ b/vavr-test/src/main/java/io/vavr/test/Gen.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-test/src/test/java/io/vavr/test/ArbitraryTest.java b/vavr-test/src/test/java/io/vavr/test/ArbitraryTest.java
index 3b626008..782377ea 100644
--- a/vavr-test/src/test/java/io/vavr/test/ArbitraryTest.java
+++ b/vavr-test/src/test/java/io/vavr/test/ArbitraryTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-test/src/test/java/io/vavr/test/CheckResultTest.java b/vavr-test/src/test/java/io/vavr/test/CheckResultTest.java
index 7eebfaf0..b8386127 100644
--- a/vavr-test/src/test/java/io/vavr/test/CheckResultTest.java
+++ b/vavr-test/src/test/java/io/vavr/test/CheckResultTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr-test/src/test/java/io/vavr/test/GenTest.java b/vavr-test/src/test/java/io/vavr/test/GenTest.java
index e3a8ae5f..317eb09d 100644
--- a/vavr-test/src/test/java/io/vavr/test/GenTest.java
+++ b/vavr-test/src/test/java/io/vavr/test/GenTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/generator/Generator.scala b/vavr/generator/Generator.scala
index a72bb19c..3741fa3c 100644
--- a/vavr/generator/Generator.scala
+++ b/vavr/generator/Generator.scala
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -3725,7 +3725,7 @@ def genVavrFile(packageName: String, className: String, baseDir: String = TARGET
      *  \  \/  /  /\  \  \/  /  /
      *   \____/__/  \__\____/__/
      *
-     * Copyright 2014-2020 Vavr, http://vavr.io
+     * Copyright 2014-2021 Vavr, http://vavr.io
      *
      * Licensed under the Apache License, Version 2.0 (the "License");
      * you may not use this file except in compliance with the License.
diff --git a/vavr/pom.xml b/vavr/pom.xml
index 17d0eba8..68e7e4c8 100644
--- a/vavr/pom.xml
+++ b/vavr/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <groupId>io.vavr</groupId>
         <artifactId>vavr-parent</artifactId>
-        <version>0.10.3</version>
+        <version>0.10.4</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>vavr</artifactId>
diff --git a/vavr/src-gen/main/java/io/vavr/API.java b/vavr/src-gen/main/java/io/vavr/API.java
index a65ff6f3..f6935af6 100644
--- a/vavr/src-gen/main/java/io/vavr/API.java
+++ b/vavr/src-gen/main/java/io/vavr/API.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/CheckedFunction0.java b/vavr/src-gen/main/java/io/vavr/CheckedFunction0.java
index 996bc3fe..a57ce629 100644
--- a/vavr/src-gen/main/java/io/vavr/CheckedFunction0.java
+++ b/vavr/src-gen/main/java/io/vavr/CheckedFunction0.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/CheckedFunction1.java b/vavr/src-gen/main/java/io/vavr/CheckedFunction1.java
index f452cd1d..10091aa3 100644
--- a/vavr/src-gen/main/java/io/vavr/CheckedFunction1.java
+++ b/vavr/src-gen/main/java/io/vavr/CheckedFunction1.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/CheckedFunction2.java b/vavr/src-gen/main/java/io/vavr/CheckedFunction2.java
index 3fb6269c..d4294f5c 100644
--- a/vavr/src-gen/main/java/io/vavr/CheckedFunction2.java
+++ b/vavr/src-gen/main/java/io/vavr/CheckedFunction2.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/CheckedFunction3.java b/vavr/src-gen/main/java/io/vavr/CheckedFunction3.java
index 3750478b..c39d6ab3 100644
--- a/vavr/src-gen/main/java/io/vavr/CheckedFunction3.java
+++ b/vavr/src-gen/main/java/io/vavr/CheckedFunction3.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/CheckedFunction4.java b/vavr/src-gen/main/java/io/vavr/CheckedFunction4.java
index f4a6294a..c5ff4a0b 100644
--- a/vavr/src-gen/main/java/io/vavr/CheckedFunction4.java
+++ b/vavr/src-gen/main/java/io/vavr/CheckedFunction4.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/CheckedFunction5.java b/vavr/src-gen/main/java/io/vavr/CheckedFunction5.java
index 935a2ad3..c70d385f 100644
--- a/vavr/src-gen/main/java/io/vavr/CheckedFunction5.java
+++ b/vavr/src-gen/main/java/io/vavr/CheckedFunction5.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/CheckedFunction6.java b/vavr/src-gen/main/java/io/vavr/CheckedFunction6.java
index 4db8e877..bd120f12 100644
--- a/vavr/src-gen/main/java/io/vavr/CheckedFunction6.java
+++ b/vavr/src-gen/main/java/io/vavr/CheckedFunction6.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/CheckedFunction7.java b/vavr/src-gen/main/java/io/vavr/CheckedFunction7.java
index d07c6072..9d0d1536 100644
--- a/vavr/src-gen/main/java/io/vavr/CheckedFunction7.java
+++ b/vavr/src-gen/main/java/io/vavr/CheckedFunction7.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/CheckedFunction8.java b/vavr/src-gen/main/java/io/vavr/CheckedFunction8.java
index 7ec66d50..474cac25 100644
--- a/vavr/src-gen/main/java/io/vavr/CheckedFunction8.java
+++ b/vavr/src-gen/main/java/io/vavr/CheckedFunction8.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/Function0.java b/vavr/src-gen/main/java/io/vavr/Function0.java
index 36f22b25..6b459d26 100644
--- a/vavr/src-gen/main/java/io/vavr/Function0.java
+++ b/vavr/src-gen/main/java/io/vavr/Function0.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/Function1.java b/vavr/src-gen/main/java/io/vavr/Function1.java
index f03dfd0f..dc146b4e 100644
--- a/vavr/src-gen/main/java/io/vavr/Function1.java
+++ b/vavr/src-gen/main/java/io/vavr/Function1.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/Function2.java b/vavr/src-gen/main/java/io/vavr/Function2.java
index f2f5d515..a6ce826d 100644
--- a/vavr/src-gen/main/java/io/vavr/Function2.java
+++ b/vavr/src-gen/main/java/io/vavr/Function2.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/Function3.java b/vavr/src-gen/main/java/io/vavr/Function3.java
index 11ebd706..aa5bbc18 100644
--- a/vavr/src-gen/main/java/io/vavr/Function3.java
+++ b/vavr/src-gen/main/java/io/vavr/Function3.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/Function4.java b/vavr/src-gen/main/java/io/vavr/Function4.java
index 630e2ac7..ffc3cd33 100644
--- a/vavr/src-gen/main/java/io/vavr/Function4.java
+++ b/vavr/src-gen/main/java/io/vavr/Function4.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/Function5.java b/vavr/src-gen/main/java/io/vavr/Function5.java
index 9a874844..014f17d7 100644
--- a/vavr/src-gen/main/java/io/vavr/Function5.java
+++ b/vavr/src-gen/main/java/io/vavr/Function5.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/Function6.java b/vavr/src-gen/main/java/io/vavr/Function6.java
index bc78a4b8..608f8f87 100644
--- a/vavr/src-gen/main/java/io/vavr/Function6.java
+++ b/vavr/src-gen/main/java/io/vavr/Function6.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/Function7.java b/vavr/src-gen/main/java/io/vavr/Function7.java
index ee48dbff..ec157722 100644
--- a/vavr/src-gen/main/java/io/vavr/Function7.java
+++ b/vavr/src-gen/main/java/io/vavr/Function7.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/Function8.java b/vavr/src-gen/main/java/io/vavr/Function8.java
index 93b561d3..3f1a63f4 100644
--- a/vavr/src-gen/main/java/io/vavr/Function8.java
+++ b/vavr/src-gen/main/java/io/vavr/Function8.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/Tuple.java b/vavr/src-gen/main/java/io/vavr/Tuple.java
index 57ddf639..6a2f82ff 100644
--- a/vavr/src-gen/main/java/io/vavr/Tuple.java
+++ b/vavr/src-gen/main/java/io/vavr/Tuple.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/Tuple0.java b/vavr/src-gen/main/java/io/vavr/Tuple0.java
index d3788cc0..56b28150 100644
--- a/vavr/src-gen/main/java/io/vavr/Tuple0.java
+++ b/vavr/src-gen/main/java/io/vavr/Tuple0.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/Tuple1.java b/vavr/src-gen/main/java/io/vavr/Tuple1.java
index cb05a309..b6487446 100644
--- a/vavr/src-gen/main/java/io/vavr/Tuple1.java
+++ b/vavr/src-gen/main/java/io/vavr/Tuple1.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/Tuple2.java b/vavr/src-gen/main/java/io/vavr/Tuple2.java
index 8131f5c9..7e6b5a98 100644
--- a/vavr/src-gen/main/java/io/vavr/Tuple2.java
+++ b/vavr/src-gen/main/java/io/vavr/Tuple2.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/Tuple3.java b/vavr/src-gen/main/java/io/vavr/Tuple3.java
index 058b784a..852d51fd 100644
--- a/vavr/src-gen/main/java/io/vavr/Tuple3.java
+++ b/vavr/src-gen/main/java/io/vavr/Tuple3.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/Tuple4.java b/vavr/src-gen/main/java/io/vavr/Tuple4.java
index 768e4bb7..1dfa09e2 100644
--- a/vavr/src-gen/main/java/io/vavr/Tuple4.java
+++ b/vavr/src-gen/main/java/io/vavr/Tuple4.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/Tuple5.java b/vavr/src-gen/main/java/io/vavr/Tuple5.java
index 98a5b306..68256309 100644
--- a/vavr/src-gen/main/java/io/vavr/Tuple5.java
+++ b/vavr/src-gen/main/java/io/vavr/Tuple5.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/Tuple6.java b/vavr/src-gen/main/java/io/vavr/Tuple6.java
index b1c47353..4438d3b9 100644
--- a/vavr/src-gen/main/java/io/vavr/Tuple6.java
+++ b/vavr/src-gen/main/java/io/vavr/Tuple6.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/Tuple7.java b/vavr/src-gen/main/java/io/vavr/Tuple7.java
index f3b743fa..835a4017 100644
--- a/vavr/src-gen/main/java/io/vavr/Tuple7.java
+++ b/vavr/src-gen/main/java/io/vavr/Tuple7.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/Tuple8.java b/vavr/src-gen/main/java/io/vavr/Tuple8.java
index 4ecd552c..84b62678 100644
--- a/vavr/src-gen/main/java/io/vavr/Tuple8.java
+++ b/vavr/src-gen/main/java/io/vavr/Tuple8.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/main/java/io/vavr/collection/ArrayType.java b/vavr/src-gen/main/java/io/vavr/collection/ArrayType.java
index d2d47520..0f918a00 100644
--- a/vavr/src-gen/main/java/io/vavr/collection/ArrayType.java
+++ b/vavr/src-gen/main/java/io/vavr/collection/ArrayType.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/APITest.java b/vavr/src-gen/test/java/io/vavr/APITest.java
index f34c77c4..0aef754a 100644
--- a/vavr/src-gen/test/java/io/vavr/APITest.java
+++ b/vavr/src-gen/test/java/io/vavr/APITest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/CheckedFunction0Test.java b/vavr/src-gen/test/java/io/vavr/CheckedFunction0Test.java
index e627061a..15823a28 100644
--- a/vavr/src-gen/test/java/io/vavr/CheckedFunction0Test.java
+++ b/vavr/src-gen/test/java/io/vavr/CheckedFunction0Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/CheckedFunction1Test.java b/vavr/src-gen/test/java/io/vavr/CheckedFunction1Test.java
index 7057bf83..12e9f784 100644
--- a/vavr/src-gen/test/java/io/vavr/CheckedFunction1Test.java
+++ b/vavr/src-gen/test/java/io/vavr/CheckedFunction1Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/CheckedFunction2Test.java b/vavr/src-gen/test/java/io/vavr/CheckedFunction2Test.java
index b7110f60..6021ac23 100644
--- a/vavr/src-gen/test/java/io/vavr/CheckedFunction2Test.java
+++ b/vavr/src-gen/test/java/io/vavr/CheckedFunction2Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/CheckedFunction3Test.java b/vavr/src-gen/test/java/io/vavr/CheckedFunction3Test.java
index 85c862a3..c9f1a04e 100644
--- a/vavr/src-gen/test/java/io/vavr/CheckedFunction3Test.java
+++ b/vavr/src-gen/test/java/io/vavr/CheckedFunction3Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/CheckedFunction4Test.java b/vavr/src-gen/test/java/io/vavr/CheckedFunction4Test.java
index 0cad5906..cc80073b 100644
--- a/vavr/src-gen/test/java/io/vavr/CheckedFunction4Test.java
+++ b/vavr/src-gen/test/java/io/vavr/CheckedFunction4Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/CheckedFunction5Test.java b/vavr/src-gen/test/java/io/vavr/CheckedFunction5Test.java
index 196f9d11..341478ca 100644
--- a/vavr/src-gen/test/java/io/vavr/CheckedFunction5Test.java
+++ b/vavr/src-gen/test/java/io/vavr/CheckedFunction5Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/CheckedFunction6Test.java b/vavr/src-gen/test/java/io/vavr/CheckedFunction6Test.java
index 6e435b4b..c86acd7e 100644
--- a/vavr/src-gen/test/java/io/vavr/CheckedFunction6Test.java
+++ b/vavr/src-gen/test/java/io/vavr/CheckedFunction6Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/CheckedFunction7Test.java b/vavr/src-gen/test/java/io/vavr/CheckedFunction7Test.java
index 2a067f70..916b07c0 100644
--- a/vavr/src-gen/test/java/io/vavr/CheckedFunction7Test.java
+++ b/vavr/src-gen/test/java/io/vavr/CheckedFunction7Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/CheckedFunction8Test.java b/vavr/src-gen/test/java/io/vavr/CheckedFunction8Test.java
index 1d986021..161b27b9 100644
--- a/vavr/src-gen/test/java/io/vavr/CheckedFunction8Test.java
+++ b/vavr/src-gen/test/java/io/vavr/CheckedFunction8Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/Function0Test.java b/vavr/src-gen/test/java/io/vavr/Function0Test.java
index d4b63136..8b794539 100644
--- a/vavr/src-gen/test/java/io/vavr/Function0Test.java
+++ b/vavr/src-gen/test/java/io/vavr/Function0Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/Function1Test.java b/vavr/src-gen/test/java/io/vavr/Function1Test.java
index 31d130a3..8c9ccfe8 100644
--- a/vavr/src-gen/test/java/io/vavr/Function1Test.java
+++ b/vavr/src-gen/test/java/io/vavr/Function1Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/Function2Test.java b/vavr/src-gen/test/java/io/vavr/Function2Test.java
index 8c0e78fe..35a09bb4 100644
--- a/vavr/src-gen/test/java/io/vavr/Function2Test.java
+++ b/vavr/src-gen/test/java/io/vavr/Function2Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/Function3Test.java b/vavr/src-gen/test/java/io/vavr/Function3Test.java
index 65fff399..6221196f 100644
--- a/vavr/src-gen/test/java/io/vavr/Function3Test.java
+++ b/vavr/src-gen/test/java/io/vavr/Function3Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/Function4Test.java b/vavr/src-gen/test/java/io/vavr/Function4Test.java
index 3377d96c..db21d211 100644
--- a/vavr/src-gen/test/java/io/vavr/Function4Test.java
+++ b/vavr/src-gen/test/java/io/vavr/Function4Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/Function5Test.java b/vavr/src-gen/test/java/io/vavr/Function5Test.java
index ded6bcb9..7ff22032 100644
--- a/vavr/src-gen/test/java/io/vavr/Function5Test.java
+++ b/vavr/src-gen/test/java/io/vavr/Function5Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/Function6Test.java b/vavr/src-gen/test/java/io/vavr/Function6Test.java
index e9b3c5c0..0ee06515 100644
--- a/vavr/src-gen/test/java/io/vavr/Function6Test.java
+++ b/vavr/src-gen/test/java/io/vavr/Function6Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/Function7Test.java b/vavr/src-gen/test/java/io/vavr/Function7Test.java
index 1733f5cc..ffdaefd1 100644
--- a/vavr/src-gen/test/java/io/vavr/Function7Test.java
+++ b/vavr/src-gen/test/java/io/vavr/Function7Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/Function8Test.java b/vavr/src-gen/test/java/io/vavr/Function8Test.java
index 36023e73..6431ddde 100644
--- a/vavr/src-gen/test/java/io/vavr/Function8Test.java
+++ b/vavr/src-gen/test/java/io/vavr/Function8Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/Tuple0Test.java b/vavr/src-gen/test/java/io/vavr/Tuple0Test.java
index abb93ae3..8f5a2b7a 100644
--- a/vavr/src-gen/test/java/io/vavr/Tuple0Test.java
+++ b/vavr/src-gen/test/java/io/vavr/Tuple0Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/Tuple1Test.java b/vavr/src-gen/test/java/io/vavr/Tuple1Test.java
index eff83dd9..272f43f7 100644
--- a/vavr/src-gen/test/java/io/vavr/Tuple1Test.java
+++ b/vavr/src-gen/test/java/io/vavr/Tuple1Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/Tuple2Test.java b/vavr/src-gen/test/java/io/vavr/Tuple2Test.java
index 73e05d10..c2ddc69f 100644
--- a/vavr/src-gen/test/java/io/vavr/Tuple2Test.java
+++ b/vavr/src-gen/test/java/io/vavr/Tuple2Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/Tuple3Test.java b/vavr/src-gen/test/java/io/vavr/Tuple3Test.java
index 89437701..129f0b37 100644
--- a/vavr/src-gen/test/java/io/vavr/Tuple3Test.java
+++ b/vavr/src-gen/test/java/io/vavr/Tuple3Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/Tuple4Test.java b/vavr/src-gen/test/java/io/vavr/Tuple4Test.java
index 8d0d3c29..7d5ec262 100644
--- a/vavr/src-gen/test/java/io/vavr/Tuple4Test.java
+++ b/vavr/src-gen/test/java/io/vavr/Tuple4Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/Tuple5Test.java b/vavr/src-gen/test/java/io/vavr/Tuple5Test.java
index c0144bfb..08b55278 100644
--- a/vavr/src-gen/test/java/io/vavr/Tuple5Test.java
+++ b/vavr/src-gen/test/java/io/vavr/Tuple5Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/Tuple6Test.java b/vavr/src-gen/test/java/io/vavr/Tuple6Test.java
index 6de5420a..77158ce4 100644
--- a/vavr/src-gen/test/java/io/vavr/Tuple6Test.java
+++ b/vavr/src-gen/test/java/io/vavr/Tuple6Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/Tuple7Test.java b/vavr/src-gen/test/java/io/vavr/Tuple7Test.java
index cd23bbc7..5d08146d 100644
--- a/vavr/src-gen/test/java/io/vavr/Tuple7Test.java
+++ b/vavr/src-gen/test/java/io/vavr/Tuple7Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/Tuple8Test.java b/vavr/src-gen/test/java/io/vavr/Tuple8Test.java
index b60392a3..3c0ec75b 100644
--- a/vavr/src-gen/test/java/io/vavr/Tuple8Test.java
+++ b/vavr/src-gen/test/java/io/vavr/Tuple8Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/collection/HashMapOfEntriesTest.java b/vavr/src-gen/test/java/io/vavr/collection/HashMapOfEntriesTest.java
index 85211b6c..1e00552b 100644
--- a/vavr/src-gen/test/java/io/vavr/collection/HashMapOfEntriesTest.java
+++ b/vavr/src-gen/test/java/io/vavr/collection/HashMapOfEntriesTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/collection/HashMultimapOfEntriesTest.java b/vavr/src-gen/test/java/io/vavr/collection/HashMultimapOfEntriesTest.java
index 4d11dee2..1f5eec86 100644
--- a/vavr/src-gen/test/java/io/vavr/collection/HashMultimapOfEntriesTest.java
+++ b/vavr/src-gen/test/java/io/vavr/collection/HashMultimapOfEntriesTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/collection/LinkedHashMapOfEntriesTest.java b/vavr/src-gen/test/java/io/vavr/collection/LinkedHashMapOfEntriesTest.java
index 540cc7eb..5d87f887 100644
--- a/vavr/src-gen/test/java/io/vavr/collection/LinkedHashMapOfEntriesTest.java
+++ b/vavr/src-gen/test/java/io/vavr/collection/LinkedHashMapOfEntriesTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/collection/LinkedHashMultimapOfEntriesTest.java b/vavr/src-gen/test/java/io/vavr/collection/LinkedHashMultimapOfEntriesTest.java
index 7f7b595e..d43fd874 100644
--- a/vavr/src-gen/test/java/io/vavr/collection/LinkedHashMultimapOfEntriesTest.java
+++ b/vavr/src-gen/test/java/io/vavr/collection/LinkedHashMultimapOfEntriesTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/collection/TreeMapOfEntriesTest.java b/vavr/src-gen/test/java/io/vavr/collection/TreeMapOfEntriesTest.java
index dae0d634..487d4dbe 100644
--- a/vavr/src-gen/test/java/io/vavr/collection/TreeMapOfEntriesTest.java
+++ b/vavr/src-gen/test/java/io/vavr/collection/TreeMapOfEntriesTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src-gen/test/java/io/vavr/collection/TreeMultimapOfEntriesTest.java b/vavr/src-gen/test/java/io/vavr/collection/TreeMultimapOfEntriesTest.java
index 4d548cd3..61f973bb 100644
--- a/vavr/src-gen/test/java/io/vavr/collection/TreeMultimapOfEntriesTest.java
+++ b/vavr/src-gen/test/java/io/vavr/collection/TreeMultimapOfEntriesTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/$.java b/vavr/src/main/java/io/vavr/$.java
index 44fc3e58..0eb99a48 100644
--- a/vavr/src/main/java/io/vavr/$.java
+++ b/vavr/src/main/java/io/vavr/$.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/CheckedConsumer.java b/vavr/src/main/java/io/vavr/CheckedConsumer.java
index c51760d6..c1b6dfb6 100644
--- a/vavr/src/main/java/io/vavr/CheckedConsumer.java
+++ b/vavr/src/main/java/io/vavr/CheckedConsumer.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/CheckedPredicate.java b/vavr/src/main/java/io/vavr/CheckedPredicate.java
index bc78ae3d..8f80ab9c 100644
--- a/vavr/src/main/java/io/vavr/CheckedPredicate.java
+++ b/vavr/src/main/java/io/vavr/CheckedPredicate.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/CheckedRunnable.java b/vavr/src/main/java/io/vavr/CheckedRunnable.java
index d16c708c..be37c8c0 100644
--- a/vavr/src/main/java/io/vavr/CheckedRunnable.java
+++ b/vavr/src/main/java/io/vavr/CheckedRunnable.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/Lazy.java b/vavr/src/main/java/io/vavr/Lazy.java
index b8c700da..d381c6e9 100644
--- a/vavr/src/main/java/io/vavr/Lazy.java
+++ b/vavr/src/main/java/io/vavr/Lazy.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/MatchError.java b/vavr/src/main/java/io/vavr/MatchError.java
index 4cd9fcf9..995ca9f1 100644
--- a/vavr/src/main/java/io/vavr/MatchError.java
+++ b/vavr/src/main/java/io/vavr/MatchError.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/NotImplementedError.java b/vavr/src/main/java/io/vavr/NotImplementedError.java
index f84b3613..3163b9d7 100644
--- a/vavr/src/main/java/io/vavr/NotImplementedError.java
+++ b/vavr/src/main/java/io/vavr/NotImplementedError.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/PartialFunction.java b/vavr/src/main/java/io/vavr/PartialFunction.java
index 4913458f..771bdacb 100644
--- a/vavr/src/main/java/io/vavr/PartialFunction.java
+++ b/vavr/src/main/java/io/vavr/PartialFunction.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -123,7 +123,7 @@ public interface PartialFunction<T, R> extends Function1<T, R> {
      *         if the function is defined for the given arguments, and {@code None} otherwise.
      */
     default Function1<T, Option<R>> lift() {
-        return t -> Option.when(isDefinedAt(t), apply(t));
+        return t -> Option.when(isDefinedAt(t), () -> apply(t));
     }
 
 }
diff --git a/vavr/src/main/java/io/vavr/Predicates.java b/vavr/src/main/java/io/vavr/Predicates.java
index faa165d0..3ad710de 100644
--- a/vavr/src/main/java/io/vavr/Predicates.java
+++ b/vavr/src/main/java/io/vavr/Predicates.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/Value.java b/vavr/src/main/java/io/vavr/Value.java
index 5ac9748f..592ef365 100644
--- a/vavr/src/main/java/io/vavr/Value.java
+++ b/vavr/src/main/java/io/vavr/Value.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/AbstractIterator.java b/vavr/src/main/java/io/vavr/collection/AbstractIterator.java
index 76419daa..526011c7 100644
--- a/vavr/src/main/java/io/vavr/collection/AbstractIterator.java
+++ b/vavr/src/main/java/io/vavr/collection/AbstractIterator.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/AbstractMultimap.java b/vavr/src/main/java/io/vavr/collection/AbstractMultimap.java
index 50b1368f..819280a4 100644
--- a/vavr/src/main/java/io/vavr/collection/AbstractMultimap.java
+++ b/vavr/src/main/java/io/vavr/collection/AbstractMultimap.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -444,8 +444,12 @@ abstract class AbstractMultimap<K, V, M extends Multimap<K, V>> implements Multi
     @Override
     public Tuple2<M, M> partition(Predicate<? super Tuple2<K, V>> predicate) {
         Objects.requireNonNull(predicate, "predicate is null");
-        final Tuple2<Iterator<Tuple2<K, V>>, Iterator<Tuple2<K, V>>> p = iterator().partition(predicate);
-        return Tuple.of((M) createFromEntries(p._1), (M) createFromEntries(p._2));
+        final java.util.List<Tuple2<K, V>> left = new java.util.ArrayList<>();
+        final java.util.List<Tuple2<K, V>> right = new java.util.ArrayList<>();
+        for (Tuple2<K, V> entry : this) {
+            (predicate.test(entry) ? left : right).add(entry);
+        }
+        return Tuple.of((M) createFromEntries(left), (M) createFromEntries(right));
     }
 
     @SuppressWarnings("unchecked")
diff --git a/vavr/src/main/java/io/vavr/collection/AbstractQueue.java b/vavr/src/main/java/io/vavr/collection/AbstractQueue.java
index f79f4d86..88149f80 100644
--- a/vavr/src/main/java/io/vavr/collection/AbstractQueue.java
+++ b/vavr/src/main/java/io/vavr/collection/AbstractQueue.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/Array.java b/vavr/src/main/java/io/vavr/collection/Array.java
index 075300a4..80c424e7 100644
--- a/vavr/src/main/java/io/vavr/collection/Array.java
+++ b/vavr/src/main/java/io/vavr/collection/Array.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/BitMappedTrie.java b/vavr/src/main/java/io/vavr/collection/BitMappedTrie.java
index de433c30..f35f8f07 100644
--- a/vavr/src/main/java/io/vavr/collection/BitMappedTrie.java
+++ b/vavr/src/main/java/io/vavr/collection/BitMappedTrie.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/BitSet.java b/vavr/src/main/java/io/vavr/collection/BitSet.java
index 29d638b8..d16f93da 100644
--- a/vavr/src/main/java/io/vavr/collection/BitSet.java
+++ b/vavr/src/main/java/io/vavr/collection/BitSet.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -815,8 +815,7 @@ interface BitSetModule {
 
         @Override
         public Tuple2<BitSet<T>, BitSet<T>> partition(Predicate<? super T> predicate) {
-            Objects.requireNonNull(predicate, "predicate is null");
-            return iterator().partition(predicate).map(this::createFromAll, this::createFromAll);
+            return Collections.partition(this, this::createFromAll, predicate);
         }
 
         @Override
diff --git a/vavr/src/main/java/io/vavr/collection/CharSeq.java b/vavr/src/main/java/io/vavr/collection/CharSeq.java
index d5534903..530638a3 100644
--- a/vavr/src/main/java/io/vavr/collection/CharSeq.java
+++ b/vavr/src/main/java/io/vavr/collection/CharSeq.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/Collections.java b/vavr/src/main/java/io/vavr/collection/Collections.java
index ab29d796..da2b80fc 100644
--- a/vavr/src/main/java/io/vavr/collection/Collections.java
+++ b/vavr/src/main/java/io/vavr/collection/Collections.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
 package io.vavr.collection;
 
 import io.vavr.Tuple;
+import io.vavr.Tuple2;
 import io.vavr.collection.JavaConverters.ChangePolicy;
 import io.vavr.collection.JavaConverters.ListView;
 import io.vavr.control.Option;
@@ -283,6 +284,17 @@ final class Collections {
         });
     }
 
+    static <C extends Traversable<T>, T> Tuple2<C, C> partition(C collection, Function<Iterable<T>, C> creator,
+                                                                Predicate<? super T> predicate) {
+        Objects.requireNonNull(predicate, "predicate is null");
+        final java.util.List<T> left = new java.util.ArrayList<>();
+        final java.util.List<T> right = new java.util.ArrayList<>();
+        for (T element : collection) {
+            (predicate.test(element) ? left : right).add(element);
+        }
+        return Tuple.of(creator.apply(left), creator.apply(right));
+    }
+
     @SuppressWarnings("unchecked")
     static <C extends Traversable<T>, T> C removeAll(C source, Iterable<? extends T> elements) {
         Objects.requireNonNull(elements, "elements is null");
@@ -531,7 +543,7 @@ final class Collections {
             return new IterableWithSize<>(iterable, ((Traversable<?>) iterable).size());
         }
     }
-    
+
     static class IterableWithSize<T> {
         private final Iterable<? extends T> iterable;
         private final int size;
diff --git a/vavr/src/main/java/io/vavr/collection/Comparators.java b/vavr/src/main/java/io/vavr/collection/Comparators.java
index 93a5a207..b292e392 100644
--- a/vavr/src/main/java/io/vavr/collection/Comparators.java
+++ b/vavr/src/main/java/io/vavr/collection/Comparators.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/Foldable.java b/vavr/src/main/java/io/vavr/collection/Foldable.java
index 7a4f3954..7d12fc34 100644
--- a/vavr/src/main/java/io/vavr/collection/Foldable.java
+++ b/vavr/src/main/java/io/vavr/collection/Foldable.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/GwtIncompatible.java b/vavr/src/main/java/io/vavr/collection/GwtIncompatible.java
index b20398b6..5b8e70af 100644
--- a/vavr/src/main/java/io/vavr/collection/GwtIncompatible.java
+++ b/vavr/src/main/java/io/vavr/collection/GwtIncompatible.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/HashArrayMappedTrie.java b/vavr/src/main/java/io/vavr/collection/HashArrayMappedTrie.java
index 3a4b7aa3..e70dae0f 100644
--- a/vavr/src/main/java/io/vavr/collection/HashArrayMappedTrie.java
+++ b/vavr/src/main/java/io/vavr/collection/HashArrayMappedTrie.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/HashMap.java b/vavr/src/main/java/io/vavr/collection/HashMap.java
index c856701c..56d4a6ac 100644
--- a/vavr/src/main/java/io/vavr/collection/HashMap.java
+++ b/vavr/src/main/java/io/vavr/collection/HashMap.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/HashMultimap.java b/vavr/src/main/java/io/vavr/collection/HashMultimap.java
index b80e7013..ea568ca9 100644
--- a/vavr/src/main/java/io/vavr/collection/HashMultimap.java
+++ b/vavr/src/main/java/io/vavr/collection/HashMultimap.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/HashSet.java b/vavr/src/main/java/io/vavr/collection/HashSet.java
index 5f40877b..bedd523f 100644
--- a/vavr/src/main/java/io/vavr/collection/HashSet.java
+++ b/vavr/src/main/java/io/vavr/collection/HashSet.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -671,7 +671,7 @@ public final class HashSet<T> implements Set<T>, Serializable {
     public boolean isEmpty() {
         return tree.isEmpty();
     }
-    
+
     /**
      * A {@code HashSet} is computed eagerly.
      *
@@ -733,9 +733,7 @@ public final class HashSet<T> implements Set<T>, Serializable {
 
     @Override
     public Tuple2<HashSet<T>, HashSet<T>> partition(Predicate<? super T> predicate) {
-        Objects.requireNonNull(predicate, "predicate is null");
-        final Tuple2<Iterator<T>, Iterator<T>> p = iterator().partition(predicate);
-        return Tuple.of(HashSet.ofAll(p._1), HashSet.ofAll(p._2));
+        return Collections.partition(this, HashSet::ofAll, predicate);
     }
 
     @Override
diff --git a/vavr/src/main/java/io/vavr/collection/IndexedSeq.java b/vavr/src/main/java/io/vavr/collection/IndexedSeq.java
index 1a138244..6ec732c6 100644
--- a/vavr/src/main/java/io/vavr/collection/IndexedSeq.java
+++ b/vavr/src/main/java/io/vavr/collection/IndexedSeq.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/Iterator.java b/vavr/src/main/java/io/vavr/collection/Iterator.java
index cd7cbaf1..1fb014bc 100644
--- a/vavr/src/main/java/io/vavr/collection/Iterator.java
+++ b/vavr/src/main/java/io/vavr/collection/Iterator.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,6 +27,7 @@ import io.vavr.control.Option;
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicReference;
 import java.util.function.*;
 
 import static java.lang.Double.NEGATIVE_INFINITY;
@@ -1694,10 +1695,8 @@ public interface Iterator<T> extends java.util.Iterator<T>, Traversable<T> {
         if (!hasNext()) {
             return Tuple.of(empty(), empty());
         } else {
-            final Stream<T> that = Stream.ofAll(this);
-            final Iterator<T> first = that.iterator().filter(predicate);
-            final Iterator<T> second = that.iterator().filter(predicate.negate());
-            return Tuple.of(first, second);
+            final Tuple2<Iterator<T>, Iterator<T>> dup = IteratorModule.duplicate(this);
+            return Tuple.of(dup._1.filter(predicate), dup._2.filter(predicate.negate()));
         }
     }
 
@@ -1870,6 +1869,7 @@ public interface Iterator<T> extends java.util.Iterator<T>, Traversable<T> {
                     if (next == null && source.hasNext()) {
                         final Object key = classifier.apply(source.touch());
                         final java.util.List<T> acc = new ArrayList<>();
+                        acc.add(source.next());
                         while (source.hasNext() && key.equals(classifier.apply(source.touch()))) {
                             acc.add(source.getNext());
                         }
@@ -1909,6 +1909,7 @@ public interface Iterator<T> extends java.util.Iterator<T>, Traversable<T> {
         }
     }
 
+
     @Override
     default String stringPrefix() {
         return "Iterator";
@@ -2042,6 +2043,44 @@ public interface Iterator<T> extends java.util.Iterator<T>, Traversable<T> {
 
 interface IteratorModule {
 
+    /**
+     * Creates two new iterators that both iterates over the same elements as
+     * this iterator and in the same order. The duplicate iterators are
+     * considered equal if they are positioned at the same element.
+     * <p>
+     * Given that most methods on iterators will make the original iterator
+     * unfit for further use, this methods provides a reliable way of calling
+     * multiple such methods on an iterator.
+     *
+     * @return a pair of iterators
+     */
+    static <T> Tuple2<Iterator<T>, Iterator<T>> duplicate(Iterator<T> iterator) {
+        final java.util.Queue<T> gap = new java.util.LinkedList<>();
+        final AtomicReference<Iterator<T>> ahead = new AtomicReference<>();
+        class Partner implements Iterator<T> {
+
+            @Override
+            public boolean hasNext() {
+                return (this != ahead.get() && !gap.isEmpty()) || iterator.hasNext();
+            }
+
+            @Override
+            public T next() {
+                if (gap.isEmpty()) {
+                    ahead.set(this);
+                }
+                if (this == ahead.get()) {
+                    final T element = iterator.next();
+                    gap.add(element);
+                    return element;
+                } else {
+                    return gap.poll();
+                }
+            }
+        }
+        return Tuple.of(new Partner(), new Partner());
+    }
+
     // inspired by Scala's ConcatIterator
     final class ConcatIterator<T> extends AbstractIterator<T> {
 
@@ -2064,10 +2103,8 @@ interface IteratorModule {
         }
 
         private Iterator<T> curr;
-
         private Cell<T> tail;
         private Cell<T> last;
-
         private boolean hasNextCalculated;
 
         void append(java.util.Iterator<? extends T> that) {
diff --git a/vavr/src/main/java/io/vavr/collection/JavaConverters.java b/vavr/src/main/java/io/vavr/collection/JavaConverters.java
index c8a821d7..2b874d93 100644
--- a/vavr/src/main/java/io/vavr/collection/JavaConverters.java
+++ b/vavr/src/main/java/io/vavr/collection/JavaConverters.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/LinearSeq.java b/vavr/src/main/java/io/vavr/collection/LinearSeq.java
index e707fd89..6b816ed4 100644
--- a/vavr/src/main/java/io/vavr/collection/LinearSeq.java
+++ b/vavr/src/main/java/io/vavr/collection/LinearSeq.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/LinkedHashMap.java b/vavr/src/main/java/io/vavr/collection/LinkedHashMap.java
index dffbf82c..51cf4bfa 100644
--- a/vavr/src/main/java/io/vavr/collection/LinkedHashMap.java
+++ b/vavr/src/main/java/io/vavr/collection/LinkedHashMap.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/LinkedHashMultimap.java b/vavr/src/main/java/io/vavr/collection/LinkedHashMultimap.java
index 2aae7279..a5569057 100644
--- a/vavr/src/main/java/io/vavr/collection/LinkedHashMultimap.java
+++ b/vavr/src/main/java/io/vavr/collection/LinkedHashMultimap.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/LinkedHashSet.java b/vavr/src/main/java/io/vavr/collection/LinkedHashSet.java
index fbef5f59..30f3d917 100644
--- a/vavr/src/main/java/io/vavr/collection/LinkedHashSet.java
+++ b/vavr/src/main/java/io/vavr/collection/LinkedHashSet.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -754,9 +754,7 @@ public final class LinkedHashSet<T> implements Set<T>, Serializable {
 
     @Override
     public Tuple2<LinkedHashSet<T>, LinkedHashSet<T>> partition(Predicate<? super T> predicate) {
-        Objects.requireNonNull(predicate, "predicate is null");
-        final Tuple2<Iterator<T>, Iterator<T>> p = iterator().partition(predicate);
-        return Tuple.of(LinkedHashSet.ofAll(p._1), LinkedHashSet.ofAll(p._2));
+        return Collections.partition(this, LinkedHashSet::ofAll, predicate);
     }
 
     @Override
diff --git a/vavr/src/main/java/io/vavr/collection/List.java b/vavr/src/main/java/io/vavr/collection/List.java
index 927d67bc..0c981ea9 100644
--- a/vavr/src/main/java/io/vavr/collection/List.java
+++ b/vavr/src/main/java/io/vavr/collection/List.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/Map.java b/vavr/src/main/java/io/vavr/collection/Map.java
index 6566c9ac..ab4dad1a 100644
--- a/vavr/src/main/java/io/vavr/collection/Map.java
+++ b/vavr/src/main/java/io/vavr/collection/Map.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/Maps.java b/vavr/src/main/java/io/vavr/collection/Maps.java
index 3f0d8697..1ab581ab 100644
--- a/vavr/src/main/java/io/vavr/collection/Maps.java
+++ b/vavr/src/main/java/io/vavr/collection/Maps.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -204,8 +204,12 @@ final class Maps {
     static <K, V, M extends Map<K, V>> Tuple2<M, M> partition(M map, OfEntries<K, V, M> ofEntries,
             Predicate<? super Tuple2<K, V>> predicate) {
         Objects.requireNonNull(predicate, "predicate is null");
-        final Tuple2<Iterator<Tuple2<K, V>>, Iterator<Tuple2<K, V>>> p = map.iterator().partition(predicate);
-        return Tuple.of(ofEntries.apply(p._1), ofEntries.apply(p._2));
+        final java.util.List<Tuple2<K, V>> left = new java.util.ArrayList<>();
+        final java.util.List<Tuple2<K, V>> right = new java.util.ArrayList<>();
+        for (Tuple2<K, V> entry : map) {
+            (predicate.test(entry) ? left : right).add(entry);
+        }
+        return Tuple.of(ofEntries.apply(left), ofEntries.apply(right));
     }
 
     static <K, V, M extends Map<K, V>> M peek(M map, Consumer<? super Tuple2<K, V>> action) {
diff --git a/vavr/src/main/java/io/vavr/collection/Multimap.java b/vavr/src/main/java/io/vavr/collection/Multimap.java
index cd2b3375..a40e9b6f 100644
--- a/vavr/src/main/java/io/vavr/collection/Multimap.java
+++ b/vavr/src/main/java/io/vavr/collection/Multimap.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/Multimaps.java b/vavr/src/main/java/io/vavr/collection/Multimaps.java
index dd927a64..c3156f8f 100644
--- a/vavr/src/main/java/io/vavr/collection/Multimaps.java
+++ b/vavr/src/main/java/io/vavr/collection/Multimaps.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/Ordered.java b/vavr/src/main/java/io/vavr/collection/Ordered.java
index 07460fc9..08dcbb47 100644
--- a/vavr/src/main/java/io/vavr/collection/Ordered.java
+++ b/vavr/src/main/java/io/vavr/collection/Ordered.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/PriorityQueue.java b/vavr/src/main/java/io/vavr/collection/PriorityQueue.java
index cada43f7..2c138b5a 100644
--- a/vavr/src/main/java/io/vavr/collection/PriorityQueue.java
+++ b/vavr/src/main/java/io/vavr/collection/PriorityQueue.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/Queue.java b/vavr/src/main/java/io/vavr/collection/Queue.java
index 60596c93..3d2bc813 100644
--- a/vavr/src/main/java/io/vavr/collection/Queue.java
+++ b/vavr/src/main/java/io/vavr/collection/Queue.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/RedBlackTree.java b/vavr/src/main/java/io/vavr/collection/RedBlackTree.java
index d0f74936..e2f82e7a 100644
--- a/vavr/src/main/java/io/vavr/collection/RedBlackTree.java
+++ b/vavr/src/main/java/io/vavr/collection/RedBlackTree.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/Seq.java b/vavr/src/main/java/io/vavr/collection/Seq.java
index d6cd3f93..25d5ba93 100644
--- a/vavr/src/main/java/io/vavr/collection/Seq.java
+++ b/vavr/src/main/java/io/vavr/collection/Seq.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/Set.java b/vavr/src/main/java/io/vavr/collection/Set.java
index a6024ef0..97e180af 100644
--- a/vavr/src/main/java/io/vavr/collection/Set.java
+++ b/vavr/src/main/java/io/vavr/collection/Set.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/SortedMap.java b/vavr/src/main/java/io/vavr/collection/SortedMap.java
index 67a2dc67..789778f4 100644
--- a/vavr/src/main/java/io/vavr/collection/SortedMap.java
+++ b/vavr/src/main/java/io/vavr/collection/SortedMap.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/SortedMultimap.java b/vavr/src/main/java/io/vavr/collection/SortedMultimap.java
index 6108c7d4..80ce43b4 100644
--- a/vavr/src/main/java/io/vavr/collection/SortedMultimap.java
+++ b/vavr/src/main/java/io/vavr/collection/SortedMultimap.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/SortedSet.java b/vavr/src/main/java/io/vavr/collection/SortedSet.java
index 0b371017..a3fe5e3b 100644
--- a/vavr/src/main/java/io/vavr/collection/SortedSet.java
+++ b/vavr/src/main/java/io/vavr/collection/SortedSet.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/Stream.java b/vavr/src/main/java/io/vavr/collection/Stream.java
index 8e73f8bf..38ace31a 100644
--- a/vavr/src/main/java/io/vavr/collection/Stream.java
+++ b/vavr/src/main/java/io/vavr/collection/Stream.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/Traversable.java b/vavr/src/main/java/io/vavr/collection/Traversable.java
index 41fcdc34..b4710462 100644
--- a/vavr/src/main/java/io/vavr/collection/Traversable.java
+++ b/vavr/src/main/java/io/vavr/collection/Traversable.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -168,7 +168,7 @@ public interface Traversable<T> extends Foldable<T>, Value<T> {
     static <T> Traversable<T> narrow(Traversable<? extends T> traversable) {
         return (Traversable<T>) traversable;
     }
-    
+
     /**
      * Matches each element with a unique key that you extract from it.
      * If the same key is present twice, the function will return {@code None}.
@@ -227,7 +227,7 @@ public interface Traversable<T> extends Foldable<T>, Value<T> {
             throw new UnsupportedOperationException("not numeric", x);
         }
     }
-    
+
     /**
      * Collects all elements that are in the domain of the given {@code partialFunction} by mapping the elements to type {@code R}.
      * <p>
@@ -345,7 +345,7 @@ public interface Traversable<T> extends Foldable<T>, Value<T> {
     Traversable<T> dropUntil(Predicate<? super T> predicate);
 
     /**
-     * Drops elements while the predicate holds for the current element.                                                                            
+     * Drops elements while the predicate holds for the current element.
      * <p>
      * Note: This is essentially the same as {@code dropUntil(predicate.negate())}.
      * It is intended to be used with method references, which cannot be negated directly.
@@ -374,7 +374,7 @@ public interface Traversable<T> extends Foldable<T>, Value<T> {
      * <li>contain the same elements</li>
      * <li>have the same element order, if the collections are of type Seq</li>
      * </ul>
-     * 
+     *
      * Two Map/Multimap elements, resp. entries, (key1, value1) and (key2, value2) are equal,
      * if the keys are equal and the values are equal.
      * <p>
@@ -600,7 +600,7 @@ public interface Traversable<T> extends Foldable<T>, Value<T> {
     default Option<T> headOption() {
         return isEmpty() ? Option.none() : Option.some(head());
     }
-    
+
     /**
      * Returns the hash code of this collection.
      * <br>
@@ -965,7 +965,7 @@ public interface Traversable<T> extends Foldable<T>, Value<T> {
             return Option.some(tm);
         }
     }
-    
+
     /**
      * Joins the elements of this by concatenating their string representations.
      * <p>
@@ -1255,7 +1255,7 @@ public interface Traversable<T> extends Foldable<T>, Value<T> {
      * @throws NullPointerException if {@code operation} is null.
      */
     <U> Traversable<U> scanRight(U zero, BiFunction<? super T, ? super U, ? extends U> operation);
-    
+
     /**
      * Returns the single element of this Traversable or throws, if this is empty or contains more than one element.
      *
@@ -1418,7 +1418,7 @@ public interface Traversable<T> extends Foldable<T>, Value<T> {
             }
         }
     }
-    
+
     /**
      * Drops the first element of a non-empty Traversable.
      *
@@ -1548,7 +1548,7 @@ public interface Traversable<T> extends Foldable<T>, Value<T> {
      * @throws NullPointerException if {@code that} is null
      */
     <U> Traversable<Tuple2<T, U>> zipAll(Iterable<? extends U> that, T thisElem, U thatElem);
-    
+
     /**
      * Returns a traversable formed from this traversable and another Iterable collection by mapping elements.
      * If one of the two iterables is longer than the other, its remaining elements are ignored.
diff --git a/vavr/src/main/java/io/vavr/collection/Tree.java b/vavr/src/main/java/io/vavr/collection/Tree.java
index 1fcfc144..086ef06c 100644
--- a/vavr/src/main/java/io/vavr/collection/Tree.java
+++ b/vavr/src/main/java/io/vavr/collection/Tree.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/TreeMap.java b/vavr/src/main/java/io/vavr/collection/TreeMap.java
index 9b878d0b..3868af33 100644
--- a/vavr/src/main/java/io/vavr/collection/TreeMap.java
+++ b/vavr/src/main/java/io/vavr/collection/TreeMap.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/TreeMultimap.java b/vavr/src/main/java/io/vavr/collection/TreeMultimap.java
index 9439368c..37372d85 100644
--- a/vavr/src/main/java/io/vavr/collection/TreeMultimap.java
+++ b/vavr/src/main/java/io/vavr/collection/TreeMultimap.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/collection/TreeSet.java b/vavr/src/main/java/io/vavr/collection/TreeSet.java
index 62317f83..5e3195aa 100644
--- a/vavr/src/main/java/io/vavr/collection/TreeSet.java
+++ b/vavr/src/main/java/io/vavr/collection/TreeSet.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -801,9 +801,7 @@ public final class TreeSet<T> implements SortedSet<T>, Serializable {
 
     @Override
     public Tuple2<TreeSet<T>, TreeSet<T>> partition(Predicate<? super T> predicate) {
-        Objects.requireNonNull(predicate, "predicate is null");
-        return iterator().partition(predicate).map(i1 -> TreeSet.ofAll(tree.comparator(), i1),
-                i2 -> TreeSet.ofAll(tree.comparator(), i2));
+        return Collections.partition(this, values -> TreeSet.ofAll(tree.comparator(), values), predicate);
     }
 
     @Override
diff --git a/vavr/src/main/java/io/vavr/collection/Vector.java b/vavr/src/main/java/io/vavr/collection/Vector.java
index 66c16968..61c720b3 100644
--- a/vavr/src/main/java/io/vavr/collection/Vector.java
+++ b/vavr/src/main/java/io/vavr/collection/Vector.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -111,7 +111,7 @@ public final class Vector<T> implements IndexedSeq<T>, Serializable {
      * @return A new Vector instance containing the given element
      */
     public static <T> Vector<T> of(T element) {
-        return ofAll(Iterator.of(element));
+        return ofAll(BitMappedTrie.ofAll(new Object[]{element}));
     }
 
     /**
diff --git a/vavr/src/main/java/io/vavr/collection/package-info.java b/vavr/src/main/java/io/vavr/collection/package-info.java
index 5937e318..6fd22a37 100644
--- a/vavr/src/main/java/io/vavr/collection/package-info.java
+++ b/vavr/src/main/java/io/vavr/collection/package-info.java
@@ -16,7 +16,7 @@
  * </tr>
  * </thead>
  * <tbody>
- * <tr><td>{@linkplain io.vavr.collection.Array}</td><td><small>const</small></td><td><small>linear</small></td><td><small>const</small></td><td><small>const</small></td><td><small>linear</small></td><td><small>linear</small></td></tr>
+ * <tr><td>{@linkplain io.vavr.collection.Array}</td><td><small>const</small></td><td><small>linear</small></td><td><small>const</small></td><td><small>linear</small></td><td><small>linear</small></td><td><small>linear</small></td></tr>
  * <tr><td>{@linkplain io.vavr.collection.CharSeq}</td><td><small>const</small></td><td><small>linear</small></td><td><small>const</small></td><td><small>linear</small></td><td><small>linear</small></td><td><small>linear</small></td></tr>
  * <tr><td><em>{@linkplain io.vavr.collection.Iterator}</em></td><td><small>const</small></td><td><small>const</small></td><td>&mdash;</td><td>&mdash;</td><td>&mdash;</td><td>&mdash;</td></tr>
  * <tr><td>{@linkplain io.vavr.collection.List}</td><td><small>const</small></td><td><small>const</small></td><td><small>linear</small></td><td><small>linear</small></td><td><small>const</small></td><td><small>linear</small></td></tr>
diff --git a/vavr/src/main/java/io/vavr/concurrent/Future.java b/vavr/src/main/java/io/vavr/concurrent/Future.java
index f014d5e1..cb039ef5 100644
--- a/vavr/src/main/java/io/vavr/concurrent/Future.java
+++ b/vavr/src/main/java/io/vavr/concurrent/Future.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/concurrent/FutureImpl.java b/vavr/src/main/java/io/vavr/concurrent/FutureImpl.java
index b935e05f..d6558962 100644
--- a/vavr/src/main/java/io/vavr/concurrent/FutureImpl.java
+++ b/vavr/src/main/java/io/vavr/concurrent/FutureImpl.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/control/Either.java b/vavr/src/main/java/io/vavr/control/Either.java
index 9a4acecd..86e5878d 100644
--- a/vavr/src/main/java/io/vavr/control/Either.java
+++ b/vavr/src/main/java/io/vavr/control/Either.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -452,7 +452,7 @@ public interface Either<L, R> extends Value<R>, Serializable {
      * Filters this right-biased {@code Either} by testing a predicate.
      * If the {@code Either} is a {@code Right} and the predicate doesn't match, the
      * {@code Either} will be turned into a {@code Left} with contents computed by applying
-     * the filterVal function to the {@code Either} value.
+     * the zero function to the {@code Either} value.
      *
      * <pre>{@code
      * import static io.vavr.API.*;
diff --git a/vavr/src/main/java/io/vavr/control/Option.java b/vavr/src/main/java/io/vavr/control/Option.java
index 04e2ab41..f245e548 100644
--- a/vavr/src/main/java/io/vavr/control/Option.java
+++ b/vavr/src/main/java/io/vavr/control/Option.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/control/Try.java b/vavr/src/main/java/io/vavr/control/Try.java
index c4f07b2e..21786d60 100644
--- a/vavr/src/main/java/io/vavr/control/Try.java
+++ b/vavr/src/main/java/io/vavr/control/Try.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/main/java/io/vavr/control/Validation.java b/vavr/src/main/java/io/vavr/control/Validation.java
index 0197107f..131b89fe 100644
--- a/vavr/src/main/java/io/vavr/control/Validation.java
+++ b/vavr/src/main/java/io/vavr/control/Validation.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/AbstractValueTest.java b/vavr/src/test/java/io/vavr/AbstractValueTest.java
index 63b4aaad..b50aa8ce 100644
--- a/vavr/src/test/java/io/vavr/AbstractValueTest.java
+++ b/vavr/src/test/java/io/vavr/AbstractValueTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/AssertionsExtensions.java b/vavr/src/test/java/io/vavr/AssertionsExtensions.java
index 91742d44..36fa2e10 100644
--- a/vavr/src/test/java/io/vavr/AssertionsExtensions.java
+++ b/vavr/src/test/java/io/vavr/AssertionsExtensions.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/CheckedConsumerTest.java b/vavr/src/test/java/io/vavr/CheckedConsumerTest.java
index 39a23a20..ef6b5fad 100644
--- a/vavr/src/test/java/io/vavr/CheckedConsumerTest.java
+++ b/vavr/src/test/java/io/vavr/CheckedConsumerTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/CheckedPredicateTest.java b/vavr/src/test/java/io/vavr/CheckedPredicateTest.java
index b7416f82..52efa5a3 100644
--- a/vavr/src/test/java/io/vavr/CheckedPredicateTest.java
+++ b/vavr/src/test/java/io/vavr/CheckedPredicateTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/CheckedRunnableTest.java b/vavr/src/test/java/io/vavr/CheckedRunnableTest.java
index 2bbf7768..57744889 100644
--- a/vavr/src/test/java/io/vavr/CheckedRunnableTest.java
+++ b/vavr/src/test/java/io/vavr/CheckedRunnableTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/IterableTest.java b/vavr/src/test/java/io/vavr/IterableTest.java
index cd1c559f..51fd63e6 100644
--- a/vavr/src/test/java/io/vavr/IterableTest.java
+++ b/vavr/src/test/java/io/vavr/IterableTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/JavaCollections.java b/vavr/src/test/java/io/vavr/JavaCollections.java
index f28ea4a9..c99233d7 100644
--- a/vavr/src/test/java/io/vavr/JavaCollections.java
+++ b/vavr/src/test/java/io/vavr/JavaCollections.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/LazyTest.java b/vavr/src/test/java/io/vavr/LazyTest.java
index 066486db..5b19cf83 100644
--- a/vavr/src/test/java/io/vavr/LazyTest.java
+++ b/vavr/src/test/java/io/vavr/LazyTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/MatchErrorTest.java b/vavr/src/test/java/io/vavr/MatchErrorTest.java
index f321275a..1fd22205 100644
--- a/vavr/src/test/java/io/vavr/MatchErrorTest.java
+++ b/vavr/src/test/java/io/vavr/MatchErrorTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/MatchTest.java b/vavr/src/test/java/io/vavr/MatchTest.java
index 83b7a9b6..5fefeec5 100644
--- a/vavr/src/test/java/io/vavr/MatchTest.java
+++ b/vavr/src/test/java/io/vavr/MatchTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/OutputTester.java b/vavr/src/test/java/io/vavr/OutputTester.java
index d8f89371..2d9452cd 100644
--- a/vavr/src/test/java/io/vavr/OutputTester.java
+++ b/vavr/src/test/java/io/vavr/OutputTester.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/PartialFunctionTest.java b/vavr/src/test/java/io/vavr/PartialFunctionTest.java
index ac3327dc..16014704 100644
--- a/vavr/src/test/java/io/vavr/PartialFunctionTest.java
+++ b/vavr/src/test/java/io/vavr/PartialFunctionTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/PredicatesTest.java b/vavr/src/test/java/io/vavr/PredicatesTest.java
index f16527e9..5ebc76be 100644
--- a/vavr/src/test/java/io/vavr/PredicatesTest.java
+++ b/vavr/src/test/java/io/vavr/PredicatesTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/Serializables.java b/vavr/src/test/java/io/vavr/Serializables.java
index dba4fabf..9ac86248 100644
--- a/vavr/src/test/java/io/vavr/Serializables.java
+++ b/vavr/src/test/java/io/vavr/Serializables.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/TestComparators.java b/vavr/src/test/java/io/vavr/TestComparators.java
index 6f04359c..f016b947 100644
--- a/vavr/src/test/java/io/vavr/TestComparators.java
+++ b/vavr/src/test/java/io/vavr/TestComparators.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/TupleTest.java b/vavr/src/test/java/io/vavr/TupleTest.java
index 2fecd1df..88dcb0a8 100644
--- a/vavr/src/test/java/io/vavr/TupleTest.java
+++ b/vavr/src/test/java/io/vavr/TupleTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/ValueTest.java b/vavr/src/test/java/io/vavr/ValueTest.java
index 8af7b699..8a08e3ce 100644
--- a/vavr/src/test/java/io/vavr/ValueTest.java
+++ b/vavr/src/test/java/io/vavr/ValueTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/AbstractIndexedSeqTest.java b/vavr/src/test/java/io/vavr/collection/AbstractIndexedSeqTest.java
index 523bf86a..26450f99 100644
--- a/vavr/src/test/java/io/vavr/collection/AbstractIndexedSeqTest.java
+++ b/vavr/src/test/java/io/vavr/collection/AbstractIndexedSeqTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/AbstractLinearSeqTest.java b/vavr/src/test/java/io/vavr/collection/AbstractLinearSeqTest.java
index c57b5a56..6ef4e3cb 100644
--- a/vavr/src/test/java/io/vavr/collection/AbstractLinearSeqTest.java
+++ b/vavr/src/test/java/io/vavr/collection/AbstractLinearSeqTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/AbstractMapTest.java b/vavr/src/test/java/io/vavr/collection/AbstractMapTest.java
index ebbe0479..dc2fcc3a 100644
--- a/vavr/src/test/java/io/vavr/collection/AbstractMapTest.java
+++ b/vavr/src/test/java/io/vavr/collection/AbstractMapTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -1440,6 +1440,21 @@ public abstract class AbstractMapTest extends AbstractTraversableTest {
         assertThat(map.getOrElse("3", "3")).isEqualTo("3");
     }
 
+    // -- partition
+
+    @Test
+    public void shouldPartitionInOneIteration() {
+        final AtomicInteger count = new AtomicInteger(0);
+        final Map<String, Integer> map = mapOf("1", 1, "2", 2, "3", 3);
+        final Tuple2<? extends Map<String, Integer>, ? extends Map<String, Integer>> results = map.partition(entry -> {
+            count.incrementAndGet();
+            return true;
+        });
+        assertThat(results._1).isEqualTo(mapOf("1", 1, "2", 2, "3", 3));
+        assertThat(results._2).isEmpty();
+        assertThat(count.get()).isEqualTo(3);
+    }
+
     // -- spliterator
 
     @Test
diff --git a/vavr/src/test/java/io/vavr/collection/AbstractMultimapTest.java b/vavr/src/test/java/io/vavr/collection/AbstractMultimapTest.java
index fe9cf554..eab241ee 100644
--- a/vavr/src/test/java/io/vavr/collection/AbstractMultimapTest.java
+++ b/vavr/src/test/java/io/vavr/collection/AbstractMultimapTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -788,6 +788,20 @@ public abstract class AbstractMultimapTest extends AbstractTraversableTest {
                         mapOfTuples(Tuple.of(1, 2), Tuple.of(3, 4))));
     }
 
+    @Test
+    @SuppressWarnings("unchecked")
+    public void shouldPartitionInOneIteration() {
+        final AtomicInteger count = new AtomicInteger(0);
+        final Multimap<String, Integer> map = mapOfTuples(Tuple.of("1", 1), Tuple.of("2", 2), Tuple.of("3", 3));
+        final Tuple2<? extends Multimap<String, Integer>, ? extends Multimap<String, Integer>> results = map.partition(entry -> {
+            count.incrementAndGet();
+            return true;
+        });
+        assertThat(results._1).isEqualTo(mapOfTuples(Tuple.of("1", 1), Tuple.of("2", 2), Tuple.of("3", 3)));
+        assertThat(results._2).isEmpty();
+        assertThat(count.get()).isEqualTo(3);
+    }
+
     // -- put
 
     @Test
diff --git a/vavr/src/test/java/io/vavr/collection/AbstractSeqTest.java b/vavr/src/test/java/io/vavr/collection/AbstractSeqTest.java
index db179c45..d2c195e4 100644
--- a/vavr/src/test/java/io/vavr/collection/AbstractSeqTest.java
+++ b/vavr/src/test/java/io/vavr/collection/AbstractSeqTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/AbstractSetTest.java b/vavr/src/test/java/io/vavr/collection/AbstractSetTest.java
index f691fd5a..678d158a 100644
--- a/vavr/src/test/java/io/vavr/collection/AbstractSetTest.java
+++ b/vavr/src/test/java/io/vavr/collection/AbstractSetTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,10 +19,12 @@
  */
 package io.vavr.collection;
 
+import io.vavr.Tuple2;
 import org.junit.Test;
 
 import java.math.BigDecimal;
 import java.util.Spliterator;
+import java.util.concurrent.atomic.AtomicInteger;
 
 public abstract class AbstractSetTest extends AbstractTraversableRangeTest {
 
@@ -190,6 +192,20 @@ public abstract class AbstractSetTest extends AbstractTraversableRangeTest {
         assertThat(empty().remove(5)).isEqualTo(empty());
     }
 
+    // -- partition
+
+    @Test
+    public void shouldPartitionInOneIteration() {
+        final AtomicInteger count = new AtomicInteger(0);
+        final Tuple2<? extends Set<Integer>, ? extends Set<Integer>> results = of(1, 2, 3).partition(i -> {
+            count.incrementAndGet();
+            return true;
+        });
+        assertThat(results._1).isEqualTo(of(1, 2, 3));
+        assertThat(results._2).isEqualTo(of());
+        assertThat(count.get()).isEqualTo(3);
+    }
+
     // -- removeAll
 
     @Test
@@ -228,7 +244,7 @@ public abstract class AbstractSetTest extends AbstractTraversableRangeTest {
             assertThat(empty().union(set)).isSameAs(set);
         }
     }
-    
+
     @Test
     public void shouldReturnSameSetWhenNonEmptyUnionEmpty() {
         final Set<Integer> set = of(1, 2);
diff --git a/vavr/src/test/java/io/vavr/collection/AbstractSortedMapTest.java b/vavr/src/test/java/io/vavr/collection/AbstractSortedMapTest.java
index 4df85284..5736803d 100644
--- a/vavr/src/test/java/io/vavr/collection/AbstractSortedMapTest.java
+++ b/vavr/src/test/java/io/vavr/collection/AbstractSortedMapTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/AbstractSortedSetTest.java b/vavr/src/test/java/io/vavr/collection/AbstractSortedSetTest.java
index b0d08f61..9aa8281b 100644
--- a/vavr/src/test/java/io/vavr/collection/AbstractSortedSetTest.java
+++ b/vavr/src/test/java/io/vavr/collection/AbstractSortedSetTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/AbstractTraversableRangeTest.java b/vavr/src/test/java/io/vavr/collection/AbstractTraversableRangeTest.java
index 6358ffe6..443d068f 100644
--- a/vavr/src/test/java/io/vavr/collection/AbstractTraversableRangeTest.java
+++ b/vavr/src/test/java/io/vavr/collection/AbstractTraversableRangeTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/AbstractTraversableTest.java b/vavr/src/test/java/io/vavr/collection/AbstractTraversableTest.java
index f828777e..8bb71eae 100644
--- a/vavr/src/test/java/io/vavr/collection/AbstractTraversableTest.java
+++ b/vavr/src/test/java/io/vavr/collection/AbstractTraversableTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,6 +27,7 @@ import java.io.*;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Function;
 import java.util.function.Supplier;
 import java.util.stream.Collector;
@@ -1885,6 +1886,17 @@ public abstract class AbstractTraversableTest extends AbstractValueTest {
         assertThat(empty().slideBy(Function.identity())).isEmpty();
     }
 
+    @Test(timeout=1000)
+    public void shouldTerminateSlideByClassifier() {
+        AtomicInteger ai = new AtomicInteger(0);
+        List<List<String>> expected = List.of(List.of("a", "-"), List.of( "-"), List.of("d") );
+        List<List<String>> actual = List.of("a", "-", "-", "d")
+                .slideBy(x -> x.equals("-") ? ai.getAndIncrement() : ai.get())
+                .toList();
+        assertThat(actual).containsAll(expected);
+        assertThat(expected).containsAll(actual);
+    }
+
     @Test
     public void shouldSlideSingularByClassifier() {
         final List<Traversable<Integer>> actual = of(1).slideBy(Function.identity()).toList().map(io.vavr.collection.Vector::ofAll);
diff --git a/vavr/src/test/java/io/vavr/collection/ArrayTest.java b/vavr/src/test/java/io/vavr/collection/ArrayTest.java
index ff5fd80b..53bf2a16 100644
--- a/vavr/src/test/java/io/vavr/collection/ArrayTest.java
+++ b/vavr/src/test/java/io/vavr/collection/ArrayTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,6 +29,7 @@ import org.junit.Test;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Function;
 import java.util.function.Supplier;
 import java.util.stream.Collector;
@@ -245,6 +246,20 @@ public class ArrayTest extends AbstractIndexedSeqTest {
             .isInstanceOf(IndexOutOfBoundsException.class).hasMessage("get(1)");
     }
 
+    // -- partition
+
+    @Test
+    public void shouldPartitionInOneIteration() {
+        final AtomicInteger count = new AtomicInteger(0);
+        final Tuple2<Array<Integer>, Array<Integer>> results = of(1, 2, 3).partition(i -> {
+            count.incrementAndGet();
+            return true;
+        });
+        assertThat(results._1).isEqualTo(of(1, 2, 3));
+        assertThat(results._2).isEqualTo(of());
+        assertThat(count.get()).isEqualTo(3);
+    }
+
     // -- transform()
 
     @Test
diff --git a/vavr/src/test/java/io/vavr/collection/CharSeqTest.java b/vavr/src/test/java/io/vavr/collection/CharSeqTest.java
index 357cccc5..cec046c1 100644
--- a/vavr/src/test/java/io/vavr/collection/CharSeqTest.java
+++ b/vavr/src/test/java/io/vavr/collection/CharSeqTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -274,6 +274,20 @@ public class CharSeqTest {
         assertThat(src.orElse(() -> CharSeq.of("12"))).isSameAs(src);
     }
 
+    // -- partition
+
+    @Test
+    public void shouldPartitionInOneIteration() {
+        final AtomicInteger count = new AtomicInteger(0);
+        final Tuple2<CharSeq, CharSeq> results = CharSeq.of('1', '2', '3').partition(c -> {
+            count.incrementAndGet();
+            return true;
+        });
+        assertThat(results._1).isEqualTo(CharSeq.of('1', '2', '3'));
+        assertThat(results._2).isEqualTo(CharSeq.of());
+        assertThat(count.get()).isEqualTo(3);
+    }
+
     // -- patch
 
     @Test
diff --git a/vavr/src/test/java/io/vavr/collection/CollectionsTest.java b/vavr/src/test/java/io/vavr/collection/CollectionsTest.java
index bca5dcca..66cb68de 100644
--- a/vavr/src/test/java/io/vavr/collection/CollectionsTest.java
+++ b/vavr/src/test/java/io/vavr/collection/CollectionsTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/HashArrayMappedTrieTest.java b/vavr/src/test/java/io/vavr/collection/HashArrayMappedTrieTest.java
index 2f718e72..d9274806 100644
--- a/vavr/src/test/java/io/vavr/collection/HashArrayMappedTrieTest.java
+++ b/vavr/src/test/java/io/vavr/collection/HashArrayMappedTrieTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/HashMapTest.java b/vavr/src/test/java/io/vavr/collection/HashMapTest.java
index e123dcae..f3a2715e 100644
--- a/vavr/src/test/java/io/vavr/collection/HashMapTest.java
+++ b/vavr/src/test/java/io/vavr/collection/HashMapTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/HashSetTest.java b/vavr/src/test/java/io/vavr/collection/HashSetTest.java
index eddc60fe..260b47d9 100644
--- a/vavr/src/test/java/io/vavr/collection/HashSetTest.java
+++ b/vavr/src/test/java/io/vavr/collection/HashSetTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/IntMap.java b/vavr/src/test/java/io/vavr/collection/IntMap.java
index e14a0c41..3de7d826 100644
--- a/vavr/src/test/java/io/vavr/collection/IntMap.java
+++ b/vavr/src/test/java/io/vavr/collection/IntMap.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/IntMod2.java b/vavr/src/test/java/io/vavr/collection/IntMod2.java
index 56c9376a..b94276e4 100644
--- a/vavr/src/test/java/io/vavr/collection/IntMod2.java
+++ b/vavr/src/test/java/io/vavr/collection/IntMod2.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/IntMod2Test.java b/vavr/src/test/java/io/vavr/collection/IntMod2Test.java
index 0399874a..e2682958 100644
--- a/vavr/src/test/java/io/vavr/collection/IntMod2Test.java
+++ b/vavr/src/test/java/io/vavr/collection/IntMod2Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/IntMultimap.java b/vavr/src/test/java/io/vavr/collection/IntMultimap.java
index 8f1ce7ef..558badb7 100644
--- a/vavr/src/test/java/io/vavr/collection/IntMultimap.java
+++ b/vavr/src/test/java/io/vavr/collection/IntMultimap.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/IteratorTest.java b/vavr/src/test/java/io/vavr/collection/IteratorTest.java
index c0e967c3..2744225f 100644
--- a/vavr/src/test/java/io/vavr/collection/IteratorTest.java
+++ b/vavr/src/test/java/io/vavr/collection/IteratorTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -41,6 +41,7 @@ import java.util.function.Supplier;
 import java.util.stream.Collector;
 
 import static io.vavr.collection.Iterator.*;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
 public class IteratorTest extends AbstractTraversableTest {
 
@@ -652,7 +653,62 @@ public class IteratorTest extends AbstractTraversableTest {
         }
     }
 
-    // -- unfoldRight
+    // -- next()
+
+    @Test
+    public void shouldThrowOnNextWhenEmpty() {
+        assertThatThrownBy(Iterator.empty()::next).isInstanceOf(NoSuchElementException.class);
+    }
+
+    @Test
+    public void shouldReturnValueOnNextWhenIteratorOfOneElementAndNextWasNotCalled() {
+        final Iterator<Object> iterator = Iterator.of(1);
+        assertThat(iterator.next()).isSameAs(1);
+    }
+
+    @Test
+    public void shouldThrowOnNextWhenIteratorOfOneElementAndNextWasCalled() {
+        final Iterator<Object> iterator = Iterator.of(1);
+        iterator.next();
+        assertThatThrownBy(iterator::next).isInstanceOf(NoSuchElementException.class);
+    }
+
+    // -- partition()
+
+    @Test
+    public void shouldPartition() {
+        final Tuple2<Iterator<String>, Iterator<String>> partitions = of("1", "2", "3").partition("2"::equals);
+        assertThat(String.join(", ", partitions._1)).isEqualTo("2");
+        assertThat(String.join(", ", partitions._2)).isEqualTo("1, 3");
+    }
+
+    @Test(timeout = 5_000L)  // avoid endless test caused by infinite iterator
+    public void shouldPartitionLazily() {
+        final java.util.List<Integer> itemsCalled = new java.util.ArrayList<>();
+
+        // Given an infinite iterator
+        final Iterator<Integer> iterator = Iterator.iterate(1, i -> {
+            itemsCalled.add(i);
+            return i + 1;
+        });
+
+        // When partitioning it
+        // Then the partitioning is done lazily (otherwise the test will timeout)
+        final Tuple2<Iterator<Integer>, Iterator<Integer>> partitions = iterator.partition(i -> i % 2 == 0);
+        assertThat(itemsCalled).isEmpty();
+
+        // When moving forwards iterators
+        // Then the moves are done as expected
+        assertThat(partitions._1.hasNext()).isTrue();
+        assertThat(partitions._1.next()).isEqualTo(2);
+        for (int i : of(1, 3, 5)) {
+            assertThat(partitions._2.hasNext()).isTrue();
+            assertThat(partitions._2.next()).isEqualTo(i);
+        }
+        assertThat(itemsCalled).containsExactly(1, 2, 3, 4);
+    }
+
+    // -- unfoldRight()
 
     @Test
     public void shouldUnfoldRightToEmpty() {
diff --git a/vavr/src/test/java/io/vavr/collection/JavaConvertersTest.java b/vavr/src/test/java/io/vavr/collection/JavaConvertersTest.java
index afad54f2..0e107ef1 100644
--- a/vavr/src/test/java/io/vavr/collection/JavaConvertersTest.java
+++ b/vavr/src/test/java/io/vavr/collection/JavaConvertersTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/ListTest.java b/vavr/src/test/java/io/vavr/collection/ListTest.java
index bbad33ae..c792fab3 100644
--- a/vavr/src/test/java/io/vavr/collection/ListTest.java
+++ b/vavr/src/test/java/io/vavr/collection/ListTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,6 +31,7 @@ import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.NoSuchElementException;
 import java.util.Spliterator;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Function;
 import java.util.function.Supplier;
 import java.util.stream.Collector;
@@ -242,6 +243,20 @@ public class ListTest extends AbstractLinearSeqTest {
         assertThat(target).isSameAs(source.getDelegate());
     }
 
+    // -- partition
+
+    @Test
+    public void shouldPartitionInOneIteration() {
+        final AtomicInteger count = new AtomicInteger(0);
+        final Tuple2<List<Integer>, List<Integer>> results = of(1, 2, 3).partition(i -> {
+            count.incrementAndGet();
+            return true;
+        });
+        assertThat(results._1).isEqualTo(of(1, 2, 3));
+        assertThat(results._2).isEqualTo(of());
+        assertThat(count.get()).isEqualTo(3);
+    }
+
     // -- peek
 
     @Test(expected = NoSuchElementException.class)
diff --git a/vavr/src/test/java/io/vavr/collection/PriorityQueueTest.java b/vavr/src/test/java/io/vavr/collection/PriorityQueueTest.java
index d0fb8b58..1d9d2d8f 100644
--- a/vavr/src/test/java/io/vavr/collection/PriorityQueueTest.java
+++ b/vavr/src/test/java/io/vavr/collection/PriorityQueueTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/QueueTest.java b/vavr/src/test/java/io/vavr/collection/QueueTest.java
index 1039e11e..5d562576 100644
--- a/vavr/src/test/java/io/vavr/collection/QueueTest.java
+++ b/vavr/src/test/java/io/vavr/collection/QueueTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,6 +29,7 @@ import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.NoSuchElementException;
 import java.util.Spliterator;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Function;
 import java.util.function.Supplier;
 import java.util.stream.Collector;
@@ -238,6 +239,20 @@ public class QueueTest extends AbstractLinearSeqTest {
         assertThat(target).isSameAs(source.getDelegate());
     }
 
+    // -- partition
+
+    @Test
+    public void shouldPartitionInOneIteration() {
+        final AtomicInteger count = new AtomicInteger(0);
+        final Tuple2<Queue<Integer>, Queue<Integer>> results = of(1, 2, 3).partition(i -> {
+            count.incrementAndGet();
+            return true;
+        });
+        assertThat(results._1).isEqualTo(of(1, 2, 3));
+        assertThat(results._2).isEqualTo(of());
+        assertThat(count.get()).isEqualTo(3);
+    }
+
     // -- peek
 
     @Test(expected = NoSuchElementException.class)
diff --git a/vavr/src/test/java/io/vavr/collection/QuickSortTest.java b/vavr/src/test/java/io/vavr/collection/QuickSortTest.java
index 62705640..8d88ae19 100644
--- a/vavr/src/test/java/io/vavr/collection/QuickSortTest.java
+++ b/vavr/src/test/java/io/vavr/collection/QuickSortTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/RedBlackTreeTest.java b/vavr/src/test/java/io/vavr/collection/RedBlackTreeTest.java
index 1e4c6cbc..2472a487 100644
--- a/vavr/src/test/java/io/vavr/collection/RedBlackTreeTest.java
+++ b/vavr/src/test/java/io/vavr/collection/RedBlackTreeTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/StreamTest.java b/vavr/src/test/java/io/vavr/collection/StreamTest.java
index 557e6766..00f1e846 100644
--- a/vavr/src/test/java/io/vavr/collection/StreamTest.java
+++ b/vavr/src/test/java/io/vavr/collection/StreamTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,6 +29,7 @@ import java.io.InvalidObjectException;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Spliterator;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Function;
 import java.util.function.Predicate;
 import java.util.function.Supplier;
@@ -470,6 +471,39 @@ public class StreamTest extends AbstractLinearSeqTest {
                 .isEqualTo(Stream.of(1, 2, 2, 4, 3, 6, 4));
     }
 
+    // -- partition
+
+    @Test
+    public void shouldPartitionInTwoIterations() {
+        final AtomicInteger count = new AtomicInteger(0);
+        final Tuple2<Stream<Integer>, Stream<Integer>> results = Stream.of(1, 2, 3).partition(i -> {
+            count.incrementAndGet();
+            return true;
+        });
+        assertThat(results._1).isEqualTo(of(1, 2, 3));
+        assertThat(results._2).isEqualTo(of());
+        assertThat(count.get()).isEqualTo(6);
+    }
+
+    @Test
+    public void shouldPartitionLazily() {
+        final java.util.Set<Integer> itemsCalled = new java.util.HashSet<>();
+
+        final Stream<Integer> infiniteStream = Stream.iterate(0, i -> i + 1);
+        assertThat(itemsCalled).isEmpty();
+
+        final Tuple2<Stream<Integer>, Stream<Integer>> results = infiniteStream.partition(i -> {
+            itemsCalled.add(i);
+            return i % 2 == 0;
+        });
+        assertThat(itemsCalled).containsExactly(0, 1);
+        assertThat(results._1.head()).isEqualTo(0);
+        assertThat(results._2.head()).isEqualTo(1);
+        assertThat(results._1.take(3)).isEqualTo(of(0, 2, 4));
+        assertThat(results._2.take(3)).isEqualTo(of(1, 3, 5));
+        assertThat(itemsCalled).containsExactly(0, 1, 2, 3, 4, 5);
+    }
+
     // -- peek
 
     @Override
diff --git a/vavr/src/test/java/io/vavr/collection/StringTest.java b/vavr/src/test/java/io/vavr/collection/StringTest.java
index f43379b5..c65d9660 100644
--- a/vavr/src/test/java/io/vavr/collection/StringTest.java
+++ b/vavr/src/test/java/io/vavr/collection/StringTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/TreeMapTest.java b/vavr/src/test/java/io/vavr/collection/TreeMapTest.java
index a6654a68..8e6fd6a2 100644
--- a/vavr/src/test/java/io/vavr/collection/TreeMapTest.java
+++ b/vavr/src/test/java/io/vavr/collection/TreeMapTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/TreeSetTest.java b/vavr/src/test/java/io/vavr/collection/TreeSetTest.java
index dfbd90cd..35259c02 100644
--- a/vavr/src/test/java/io/vavr/collection/TreeSetTest.java
+++ b/vavr/src/test/java/io/vavr/collection/TreeSetTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/TreeTest.java b/vavr/src/test/java/io/vavr/collection/TreeTest.java
index ceda2193..f2eb4be7 100644
--- a/vavr/src/test/java/io/vavr/collection/TreeTest.java
+++ b/vavr/src/test/java/io/vavr/collection/TreeTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/VectorPropertyTest.java b/vavr/src/test/java/io/vavr/collection/VectorPropertyTest.java
index c1ba8458..b1f90773 100644
--- a/vavr/src/test/java/io/vavr/collection/VectorPropertyTest.java
+++ b/vavr/src/test/java/io/vavr/collection/VectorPropertyTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/VectorTest.java b/vavr/src/test/java/io/vavr/collection/VectorTest.java
index d73c43c8..b33c4220 100644
--- a/vavr/src/test/java/io/vavr/collection/VectorTest.java
+++ b/vavr/src/test/java/io/vavr/collection/VectorTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,6 +30,7 @@ import org.junit.Test;
 import java.io.InvalidObjectException;
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Function;
 import java.util.function.Supplier;
 import java.util.stream.Collector;
@@ -237,6 +238,21 @@ public class VectorTest extends AbstractIndexedSeqTest {
         assertThat(target).isSameAs(source.getDelegate());
     }
 
+    // -- partition
+
+    @Test
+    public void shouldPartitionInOneIteration() {
+        final AtomicInteger count = new AtomicInteger(0);
+        final Vector<Integer> values = ofAll(1, 2, 3);
+        final Tuple2<Vector<Integer>, Vector<Integer>> results = values.partition(v -> {
+            count.incrementAndGet();
+            return true;
+        });
+        assertThat(results._1).isEqualTo(ofAll(1, 2, 3));
+        assertThat(results._2).isEmpty();
+        assertThat(count.get()).isEqualTo(3);
+    }
+
     // -- primitives
 
     @Test
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler01Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler01Test.java
index 3fed5d96..58ef5253 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler01Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler01Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler02Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler02Test.java
index e55127fa..462ee4bf 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler02Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler02Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler03Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler03Test.java
index fc646de7..1ce24f1e 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler03Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler03Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler04Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler04Test.java
index d08c2ebc..e8a79424 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler04Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler04Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler05Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler05Test.java
index 57678a70..922be849 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler05Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler05Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler06Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler06Test.java
index ca196d87..379982ca 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler06Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler06Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler07Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler07Test.java
index d61cfd95..4a70a23f 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler07Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler07Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler08Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler08Test.java
index 6dd6394e..509c7901 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler08Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler08Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler09Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler09Test.java
index 1ca6926e..ea07ef85 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler09Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler09Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler10Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler10Test.java
index 6b712e23..d3a4cc22 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler10Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler10Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler11Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler11Test.java
index 60398853..cce7997f 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler11Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler11Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler12Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler12Test.java
index e8b39414..9831a88c 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler12Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler12Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler13Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler13Test.java
index 6c7388fe..290cba45 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler13Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler13Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler14Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler14Test.java
index 1345d2b1..f7dd6a05 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler14Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler14Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler15Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler15Test.java
index b192bd03..b20ce8de 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler15Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler15Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler16Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler16Test.java
index 0e5100c5..83afa57b 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler16Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler16Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler17Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler17Test.java
index a3859153..ce7e830c 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler17Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler17Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler18Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler18Test.java
index 5940d343..bd0de407 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler18Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler18Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler19Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler19Test.java
index 9ca8cb91..4b1a6389 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler19Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler19Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler20Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler20Test.java
index 14e87ed4..f9d2c99b 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler20Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler20Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler21Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler21Test.java
index 9e83df09..8e27e425 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler21Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler21Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler22Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler22Test.java
index 25fca097..948a8bdd 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler22Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler22Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler23Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler23Test.java
index 91feb286..62022cbc 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler23Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler23Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler24Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler24Test.java
index a8b079a8..ef7b7bda 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler24Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler24Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler25Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler25Test.java
index 575622c1..dc69a85a 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler25Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler25Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler26Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler26Test.java
index 3c4ed89c..07056e95 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler26Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler26Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler27Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler27Test.java
index db8ce64a..e2ffdb4b 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler27Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler27Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler28Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler28Test.java
index 268e4488..83fb46db 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler28Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler28Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler29Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler29Test.java
index d6655231..37e967d7 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler29Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler29Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler30Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler30Test.java
index 36cc4762..caaac900 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler30Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler30Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler31Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler31Test.java
index bea1b516..c86f73fb 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler31Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler31Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler32Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler32Test.java
index bf0c9d88..1a804cbb 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler32Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler32Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler33Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler33Test.java
index 4b512fde..8a4cd594 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler33Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler33Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler34Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler34Test.java
index 6ad7ea8d..48e65779 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler34Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler34Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler35Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler35Test.java
index 05121e2c..d40f4ed2 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler35Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler35Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler36Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler36Test.java
index d0db32a9..375bbb98 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler36Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler36Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler37Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler37Test.java
index 2d0a9366..d5c3779d 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler37Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler37Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler38Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler38Test.java
index d15a622f..5a578246 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler38Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler38Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler39Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler39Test.java
index a9573054..20b0a7e9 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler39Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler39Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler40Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler40Test.java
index 512ee77b..e9d43250 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler40Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler40Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler41Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler41Test.java
index 97d63ac8..1118987a 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler41Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler41Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler42Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler42Test.java
index d462931b..293d3b58 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler42Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler42Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler43Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler43Test.java
index f86f17bc..0f8a97b8 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler43Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler43Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler45Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler45Test.java
index 3ea5cc8d..bd303eef 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler45Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler45Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler48Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler48Test.java
index 10c5c318..969cd90a 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler48Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler48Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler55Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler55Test.java
index 2dfb32d9..6fc2951a 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler55Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler55Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler57Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler57Test.java
index 6ab69285..9bde80f8 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler57Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler57Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler67Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler67Test.java
index 0eb1bcb7..a890bef3 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler67Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler67Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler71Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler71Test.java
index a4512847..3ecb3395 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler71Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler71Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Euler99Test.java b/vavr/src/test/java/io/vavr/collection/euler/Euler99Test.java
index af444e5a..f57637ce 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Euler99Test.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Euler99Test.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/PrimeNumbers.java b/vavr/src/test/java/io/vavr/collection/euler/PrimeNumbers.java
index 95e55e72..0d43bf29 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/PrimeNumbers.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/PrimeNumbers.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Sieve.java b/vavr/src/test/java/io/vavr/collection/euler/Sieve.java
index b8b5777b..9e91e7f6 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Sieve.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Sieve.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/collection/euler/Utils.java b/vavr/src/test/java/io/vavr/collection/euler/Utils.java
index f88dcd7f..7cfa7ef4 100644
--- a/vavr/src/test/java/io/vavr/collection/euler/Utils.java
+++ b/vavr/src/test/java/io/vavr/collection/euler/Utils.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/concurrent/Concurrent.java b/vavr/src/test/java/io/vavr/concurrent/Concurrent.java
index 04f205d1..a725e201 100644
--- a/vavr/src/test/java/io/vavr/concurrent/Concurrent.java
+++ b/vavr/src/test/java/io/vavr/concurrent/Concurrent.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/concurrent/FutureTest.java b/vavr/src/test/java/io/vavr/concurrent/FutureTest.java
index a9000611..0d5c57bc 100644
--- a/vavr/src/test/java/io/vavr/concurrent/FutureTest.java
+++ b/vavr/src/test/java/io/vavr/concurrent/FutureTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/control/EitherTest.java b/vavr/src/test/java/io/vavr/control/EitherTest.java
index 927bb3a1..18b6e149 100644
--- a/vavr/src/test/java/io/vavr/control/EitherTest.java
+++ b/vavr/src/test/java/io/vavr/control/EitherTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/control/OptionTest.java b/vavr/src/test/java/io/vavr/control/OptionTest.java
index 794e0c8b..56f2c67b 100644
--- a/vavr/src/test/java/io/vavr/control/OptionTest.java
+++ b/vavr/src/test/java/io/vavr/control/OptionTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -531,6 +531,12 @@ public class OptionTest extends AbstractValueTest {
         Option.some(1).collect(pf);
     }
 
+    @Test
+    public void shouldNotCallPartialFunctionOnUndefinedArg() {
+        final PartialFunction<Integer, Integer> pf = Function1.<Integer, Integer> of(x -> 1/x).partial(i -> i != 0);
+        assertThat(Option.of(0).collect(pf)).isEqualTo(Option.none());
+    }
+
     // -- iterator
 
     @Test
diff --git a/vavr/src/test/java/io/vavr/control/TryTest.java b/vavr/src/test/java/io/vavr/control/TryTest.java
index c6f0a218..ff019886 100644
--- a/vavr/src/test/java/io/vavr/control/TryTest.java
+++ b/vavr/src/test/java/io/vavr/control/TryTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/control/ValidationTest.java b/vavr/src/test/java/io/vavr/control/ValidationTest.java
index a8bcaa32..debb2d6b 100644
--- a/vavr/src/test/java/io/vavr/control/ValidationTest.java
+++ b/vavr/src/test/java/io/vavr/control/ValidationTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/vavr/src/test/java/io/vavr/issues/Issue2559Test.java b/vavr/src/test/java/io/vavr/issues/Issue2559Test.java
new file mode 100644
index 00000000..8a11b2db
--- /dev/null
+++ b/vavr/src/test/java/io/vavr/issues/Issue2559Test.java
@@ -0,0 +1,86 @@
+package io.vavr.issues;
+
+import io.vavr.Tuple2;
+import io.vavr.collection.HashSet;
+import io.vavr.collection.Set;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.Objects;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+/**
+ * partition method seems to not work correctly, comparing to scala
+ * https://github.com/vavr-io/vavr/issues/2559
+ */
+public class Issue2559Test {
+
+    private java.util.Map<String, Eat> fruitsBeingEaten = new java.util.HashMap<>();
+
+    @Before
+    public void setUp() {
+        fruitsBeingEaten = new java.util.HashMap<>();
+    }
+
+    @Test
+    public void partitionShouldBeUnique() {
+        final Set<String> fruitsToEat = HashSet.of("apple", "banana");
+        final Tuple2<? extends Set<String>, ? extends Set<String>> partition = fruitsToEat.partition(this::biteAndCheck);
+        assertThat(partition._1).isEmpty();
+        assertThat(partition._2).isEqualTo(HashSet.of("apple", "banana"));
+        assertThat(fruitsBeingEaten)
+                .hasSize(2)
+                .containsEntry("apple", new Eat(1, "apple"))
+                .containsEntry("banana", new Eat(1, "banana"));
+    }
+
+    private boolean biteAndCheck(String name) {
+        final Eat eat = fruitsBeingEaten.getOrDefault(name, Eat.prepare(name)).bite();
+        fruitsBeingEaten.put(name, eat);
+        return eat.isEaten();
+    }
+
+    private static class Eat {
+        final int bites;
+        final String name;
+
+        public static Eat prepare(String name) {
+            return new Eat(0, name);
+        }
+
+        private Eat(int bites, String name) {
+            this.bites = bites;
+            this.name = name;
+        }
+
+        public Eat bite() {
+            return new Eat(bites + 1, name);
+        }
+
+        public boolean isEaten() {
+            return bites >= 2;
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (this == o) return true;
+            if (!(o instanceof Eat)) return false;
+            Eat eat = (Eat) o;
+            return bites == eat.bites && Objects.equals(name, eat.name);
+        }
+
+        @Override
+        public int hashCode() {
+            return Objects.hash(bites, name);
+        }
+
+        @Override
+        public String toString() {
+            return "Eat{" +
+                    "bites=" + bites +
+                    ", name='" + name + '\'' +
+                    '}';
+        }
+    }
+}
diff --git a/vavr/src/test/java/outside_of_vavr/IllegalAccessErrorTest.java b/vavr/src/test/java/outside_of_vavr/IllegalAccessErrorTest.java
index ddf77d20..5e031750 100644
--- a/vavr/src/test/java/outside_of_vavr/IllegalAccessErrorTest.java
+++ b/vavr/src/test/java/outside_of_vavr/IllegalAccessErrorTest.java
@@ -3,7 +3,7 @@
  *  \  \/  /  /\  \  \/  /  /
  *   \____/__/  \__\____/__/
  *
- * Copyright 2014-2020 Vavr, http://vavr.io
+ * Copyright 2014-2021 Vavr, http://vavr.io
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

Debdiff

[The following lists of changes regard files as different if they have different names, permissions or owners.]

Files in second set of .debs but not in first

-rw-r--r--  root/root   /usr/share/java/vavr-0.10.4.jar
-rw-r--r--  root/root   /usr/share/java/vavr-match-0.10.4.jar
-rw-r--r--  root/root   /usr/share/java/vavr-match-processor-0.10.4.jar
-rw-r--r--  root/root   /usr/share/java/vavr-test-0.10.4.jar
-rw-r--r--  root/root   /usr/share/maven-repo/io/vavr/vavr-match-processor/0.10.4/vavr-match-processor-0.10.4.pom
-rw-r--r--  root/root   /usr/share/maven-repo/io/vavr/vavr-match/0.10.4/vavr-match-0.10.4.pom
-rw-r--r--  root/root   /usr/share/maven-repo/io/vavr/vavr-parent/0.10.4/vavr-parent-0.10.4.pom
-rw-r--r--  root/root   /usr/share/maven-repo/io/vavr/vavr-test/0.10.4/vavr-test-0.10.4.pom
-rw-r--r--  root/root   /usr/share/maven-repo/io/vavr/vavr/0.10.4/vavr-0.10.4.pom
lrwxrwxrwx  root/root   /usr/share/java/vavr-0.x.jar -> vavr-0.10.4.jar
lrwxrwxrwx  root/root   /usr/share/java/vavr-match-0.x.jar -> vavr-match-0.10.4.jar
lrwxrwxrwx  root/root   /usr/share/java/vavr-match-processor-0.x.jar -> vavr-match-processor-0.10.4.jar
lrwxrwxrwx  root/root   /usr/share/java/vavr-test-0.x.jar -> vavr-test-0.10.4.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/io/vavr/vavr-match-processor/0.10.4/vavr-match-processor-0.10.4.jar -> ../../../../../java/vavr-match-processor-0.10.4.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/io/vavr/vavr-match-processor/0.x/vavr-match-processor-0.x.jar -> ../../../../../java/vavr-match-processor-0.10.4.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/io/vavr/vavr-match/0.10.4/vavr-match-0.10.4.jar -> ../../../../../java/vavr-match-0.10.4.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/io/vavr/vavr-match/0.x/vavr-match-0.x.jar -> ../../../../../java/vavr-match-0.10.4.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/io/vavr/vavr-test/0.10.4/vavr-test-0.10.4.jar -> ../../../../../java/vavr-test-0.10.4.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/io/vavr/vavr-test/0.x/vavr-test-0.x.jar -> ../../../../../java/vavr-test-0.10.4.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/io/vavr/vavr/0.10.4/vavr-0.10.4.jar -> ../../../../../java/vavr-0.10.4.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/io/vavr/vavr/0.x/vavr-0.x.jar -> ../../../../../java/vavr-0.10.4.jar

Files in first set of .debs but not in second

-rw-r--r--  root/root   /usr/share/java/vavr-0.10.3.jar
-rw-r--r--  root/root   /usr/share/java/vavr-match-0.10.3.jar
-rw-r--r--  root/root   /usr/share/java/vavr-match-processor-0.10.3.jar
-rw-r--r--  root/root   /usr/share/java/vavr-test-0.10.3.jar
-rw-r--r--  root/root   /usr/share/maven-repo/io/vavr/vavr-match-processor/0.10.3/vavr-match-processor-0.10.3.pom
-rw-r--r--  root/root   /usr/share/maven-repo/io/vavr/vavr-match/0.10.3/vavr-match-0.10.3.pom
-rw-r--r--  root/root   /usr/share/maven-repo/io/vavr/vavr-parent/0.10.3/vavr-parent-0.10.3.pom
-rw-r--r--  root/root   /usr/share/maven-repo/io/vavr/vavr-test/0.10.3/vavr-test-0.10.3.pom
-rw-r--r--  root/root   /usr/share/maven-repo/io/vavr/vavr/0.10.3/vavr-0.10.3.pom
lrwxrwxrwx  root/root   /usr/share/java/vavr-0.x.jar -> vavr-0.10.3.jar
lrwxrwxrwx  root/root   /usr/share/java/vavr-match-0.x.jar -> vavr-match-0.10.3.jar
lrwxrwxrwx  root/root   /usr/share/java/vavr-match-processor-0.x.jar -> vavr-match-processor-0.10.3.jar
lrwxrwxrwx  root/root   /usr/share/java/vavr-test-0.x.jar -> vavr-test-0.10.3.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/io/vavr/vavr-match-processor/0.10.3/vavr-match-processor-0.10.3.jar -> ../../../../../java/vavr-match-processor-0.10.3.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/io/vavr/vavr-match-processor/0.x/vavr-match-processor-0.x.jar -> ../../../../../java/vavr-match-processor-0.10.3.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/io/vavr/vavr-match/0.10.3/vavr-match-0.10.3.jar -> ../../../../../java/vavr-match-0.10.3.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/io/vavr/vavr-match/0.x/vavr-match-0.x.jar -> ../../../../../java/vavr-match-0.10.3.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/io/vavr/vavr-test/0.10.3/vavr-test-0.10.3.jar -> ../../../../../java/vavr-test-0.10.3.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/io/vavr/vavr-test/0.x/vavr-test-0.x.jar -> ../../../../../java/vavr-test-0.10.3.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/io/vavr/vavr/0.10.3/vavr-0.10.3.jar -> ../../../../../java/vavr-0.10.3.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/io/vavr/vavr/0.x/vavr-0.x.jar -> ../../../../../java/vavr-0.10.3.jar

No differences were encountered in the control files

More details

Full run details