Put restriction in String#+(other : self)
Now function types inherit the Function generic variadic struct, so you can do Function(Int32, Int32), which is the same type as Int32 -> Int32. This makes the language more consistent, but also allows using "Function" as a type restriction.