so let's say you have this type:
@typeclass trait Foo[A] {
def bar(x: A)(y: A): A
}
you could (through the implicit syntax defined by the simulacrum) be able to write this method:
def baz[A: Foo](x: A, y: A): A = x bar y
bar @noop, , - "bar A", , A -, .