e.g. https://github.com/SciML/Surrogates.jl/blob/master/lib/SurrogatesAbstractGPs/src/SurrogatesAbstractGPs.jl looks very convertable to an extension - the struct can be defined in an `extensions.jl` in the main package, since it's just a parametrized wrapper.