World age problem, when does a generated function get generated?

I’m having a very confusing interaction between GLAbstraction.jl and ColorTypes.jl. I’ve read through pretty much all the world age threads and info I could find but I still don’t understand what is going wrong.

The structure of my problem is something like this:

module Glimpse
using ColorTypes
using GLAbstraction

function test()
    return GLAbstraction.FrameBuffer((1024, 1024), (RGBA{Float64}, GLAbstraction.Dept{Float32}), true)

Then if I run using Glimpse; Glimpse.test() I get a world age error complaining at line dim = length(T)
that no suitable function length(RGBA{Float32}) was found, that the one defined in ColorTypes is running in a too new world.

In a standard repl this works perfectly.
What is going on here?