flyingmutant/k2 — comment on commit 513160f1faae169361a8d7a85af4942391e90145
File: syntax.txt line 1
By jckarter:

This looks a lot like what I had in mind for typeclasses in Clay. Will you be able to handle functional dependencies? You want to be able to compactly represent, for example, the relationship between a sequence type and its element type. What I had in mind for Clay was this pattern syntax:

```
// given a concept [T] Sequence[T]
[S:Sequence] // S is a Sequence[_] for any type
[S:Sequence[Int]] // S is a Sequence[Int]
[T, S:Sequence[T]] // S is a Sequence[T] for any T, which will be unified with T
[T:Numeric, S:Sequence[T]] // Sequence[T] for some Numeric T
```

In my mind `:` binds tighter than `,`, so `(U, V):Convertible` seems more readable for multi-parameter classes.