For example, I can define
vapply!(f::VCompose, y, x) = y .= f.f.(f.g.(x))
to avoid allocations in my example.