1919 * @see Monoid
2020 * @see java.util.Map
2121 */
22- public class MergeMaps <K , V > implements BiMonoidFactory <Supplier <Map <K , V >>, Semigroup <V >, Map <K , V >> {
22+ public final class MergeMaps <K , V > implements BiMonoidFactory <Supplier <Map <K , V >>, Semigroup <V >, Map <K , V >> {
23+
24+ private static final MergeMaps INSTANCE = new MergeMaps ();
25+
2326 private MergeMaps () {
2427 }
2528
@@ -33,23 +36,26 @@ public Monoid<Map<K, V>> apply(Supplier<Map<K, V>> mSupplier, Semigroup<V> semig
3336 }, mSupplier );
3437 }
3538
36- public static <A , B > MergeMaps <A , B > mergeMaps () {
37- return new MergeMaps <>();
39+ @ SuppressWarnings ("unchecked" )
40+ public static <K , V > MergeMaps <K , V > mergeMaps () {
41+ return INSTANCE ;
3842 }
3943
40- public static <A , B > MonoidFactory <Semigroup <B >, Map <A , B >> mergeMaps (Supplier <Map <A , B >> mSupplier ) {
41- return MergeMaps .<A , B >mergeMaps ().apply (mSupplier );
44+ public static <K , V > MonoidFactory <Semigroup <V >, Map <K , V >> mergeMaps (Supplier <Map <K , V >> mSupplier ) {
45+ return MergeMaps .<K , V >mergeMaps ().apply (mSupplier );
4246 }
4347
44- public static <A , B > Monoid <Map <A , B >> mergeMaps (Supplier <Map <A , B >> mSupplier , Semigroup <B > semigroup ) {
48+ public static <K , V > Monoid <Map <K , V >> mergeMaps (Supplier <Map <K , V >> mSupplier , Semigroup <V > semigroup ) {
4549 return mergeMaps (mSupplier ).apply (semigroup );
4650 }
4751
48- public static <A , B > Fn1 <Map <A , B >, Map <A , B >> mergeMaps (Supplier <Map <A , B >> mSupplier , Semigroup <B > semigroup , Map <A , B > x ) {
52+ public static <K , V > Fn1 <Map <K , V >, Map <K , V >> mergeMaps (Supplier <Map <K , V >> mSupplier , Semigroup <V > semigroup ,
53+ Map <K , V > x ) {
4954 return mergeMaps (mSupplier , semigroup ).apply (x );
5055 }
5156
52- public static <A , B > Map <A , B > mergeMaps (Supplier <Map <A , B >> mSupplier , Semigroup <B > semigroup , Map <A , B > x , Map <A , B > y ) {
57+ public static <K , V > Map <K , V > mergeMaps (Supplier <Map <K , V >> mSupplier , Semigroup <V > semigroup , Map <K , V > x ,
58+ Map <K , V > y ) {
5359 return mergeMaps (mSupplier , semigroup , x ).apply (y );
5460 }
5561}
0 commit comments