If you want to reserve T for data you can just add another type parameter to operator to make prod! type-stable:
struct operator{T,F}
prod!::F
end
operator{T}(prod!::F) where {T,F} = operator{T,F}(prod!)
If you want to reserve T for data you can just add another type parameter to operator to make prod! type-stable:
struct operator{T,F}
prod!::F
end
operator{T}(prod!::F) where {T,F} = operator{T,F}(prod!)