At first glance I don't think that would be a good idea. You want to
infer the type argument to Printer[T] from the type printer[string].
But printer[string] is a struct and Printer[T] is an interface. We
would have to take printer[string], look at the methods, compare them
to the methods of Printer[T], and infer T from the method signatures.
That is a lot of steps.
Although I think we are going to make type inference more powerful, I
think it's important that it always be simple and predictable for
readers of the code. Inferring an interface type argument based on
method types seems to me to be rather subtle.
Ian