8bec5cec61
1. Nullable function type is not rendered correctly.
2. Bounds of type parameters are not considered during comparison, this
would incorrectly treat different declarations as the same, for
example
```
fun <C: List<String>> C.foo() {}
fun <C: Set<String>> C.foo() {}
```