@SafeVarargs
  static ZoomFunction<GeometryPipeline> compose(
    ZoomFunction<GeometryPipeline> a,
    ZoomFunction<GeometryPipeline> b,
    ZoomFunction<GeometryPipeline> c,
    ZoomFunction<GeometryPipeline>... rest) {
    return zoom -> geom -> {
      geom = ZoomFunction.applyOrElse(a, zoom, NOOP).apply(geom);
      geom = ZoomFunction.applyOrElse(b, zoom, NOOP).apply(geom);
      geom = ZoomFunction.applyOrElse(c, zoom, NOOP).apply(geom);
      if (rest != null) {
        for (var fn : rest) {
          geom = ZoomFunction.applyOrElse(fn, zoom, NOOP).apply(geom);
        }
      }
      return geom;
    };
  }
Returns a function that applies each argument sequentially to the input geometry at each zoom.
planetiler-core/src/main/java/com/onthegomap/planetiler/geo/GeometryPipeline.java