docs: public static <X, Y, Z> Map<X, Z> compose(Map<X, Y> map1, Map<Y, Z> map2) {
      Map<X, Z> composedMap = new HashMap<X, Z>();
      for (X key : map1.keySet()) {
        composedMap.put(key, map2.get(map1.get(key)));
      }
      return composedMap;
    }