_GeometryCollection ::
  (BaseType a, ListLike f (GeometryObject a)) =>
  Prism' (GeometryObject a) (f (GeometryObject a))
_GeometryCollection = prism' f t
  where f = GeometryCollection . foldMap pure
        t (GeometryCollection a) = pure $ foldMap pure a
        t _                      = empty
_GeometryCollection ::
  (BaseType a, ListLike f (GeometryObject a)) =>
  Prism' (GeometryObject a) (f (GeometryObject a))
_GeometryCollection = prism' f t
  where f = GeometryCollection . foldMap pure
        t (GeometryCollection a) = pure $ foldMap pure a
        t _                      = empty
_GeometryCollection = prism' f t
  where f = GeometryCollection . foldMap pure
        t (GeometryCollection a) = pure $ foldMap pure a
        t _                      = empty