golang's "generics" are really just a logical extension of duck typing... if it can be inferred, then it is permitted if the type parameter specifies it
although i don't know yet what the ~ means in them yet, didn't read that in the docs yet but i've seen it in an "x" package