It would be a major breaking change, but the code associated with path_intersection and path_stroke is not needed by many use-cases, and could usefully be put into separate sub-packages. I just did this in my version of this code in cogent core, and the remaining top-level basic path code was only 1/3 the previous size. Also, the api footprint for the Path type is much smaller, as this requires converting methods to functions in the packages. This is more conventional Go-style, e.g., with strings having all the string functionality instead of putting everything as methods on the type. The same approach could be taken with all the latex, text, etc stuff as well. Anyway, just a suggestion -- it did take a big chunk out of my day and wasn't much fun, but I'm happy with the result :)