AFAIK the answer is no. Basically, despite N looks like a number, it’s really just a single type no different than Int64 or Float64. Think of it as Val{N}. Because of this, compiler doesn’t do “math” on types, only <: and :>, which is why the answer is probably no.
Yeah. I get that N is still treated as another type in the type system so that we can only do type operations such as <: and :> here. I wish we could treat it as a primitive-type variable but maybe that will break the function initialization during the compile time? I’m not sure if it’s a design choice or some feature that can be added in the future.