Allow explicit generic arg passing

Like func<generic args>(normal args) Also, like in Rust, use _ to mean "figure out the type yourself compiler" Currently all generic args are infered