class GeoJsonReaderModule
        implements ObjectReaderModule {
    public static final GeoJsonReaderModule INSTANCE = new GeoJsonReaderModule();

    @Override
    public void init(ObjectReaderProvider provider) {<FILL_FUNCTION_BODY>}

    @JSONType(deserializeFeatures = JSONReader.Feature.SupportArrayToBean)
    static class PointMixin {
        @JSONCreator(parameterNames = {"x", "y"})
        public PointMixin(double x, double y) {
        }
    }

    @JSONType(
            typeKey = "type",
            typeName = "MultiPoint",
            deserializeFeatures = JSONReader.Feature.SupportArrayToBean)
    abstract static class GeoJsonMultiPointMixin {
        @JSONCreator(parameterNames = "coordinates")
        public GeoJsonMultiPointMixin(List<Point> points) {
        }

        @JSONField(deserialize = false)
        public abstract List<Point> getCoordinates();
    }

    @JSONType(
            typeKey = "type",
            typeName = "LineString",
            deserializeFeatures = JSONReader.Feature.SupportArrayToBean
    )
    abstract static class GeoJsonLineStringMixin {
        @JSONCreator(parameterNames = "coordinates")
        public GeoJsonLineStringMixin(List<Point> points) {
        }

        @JSONField(deserialize = false)
        public abstract List<Point> getCoordinates();
    }
}

        provider.mixIn(Point.class, PointMixin.class);
        provider.mixIn(GeoJsonLineString.class, GeoJsonLineStringMixin.class);
        provider.mixIn(GeoJsonMultiPoint.class, GeoJsonMultiPointMixin.class);
        provider.register(GeoJsonPoint.class, GeoJsonPointReader.INSTANCE);
        provider.register(GeoJsonPolygon.class, GeoJsonPolygonReader.INSTANCE);
    
<no_super_class>