`T&&` was for `set` because you can do `set(1, "...")` and it'll work. `set` wasn't supposed to only take strings because `int` works for tables (e.g. arrays). However that isn't really the case for functions since they can only have string indices/names.