Sorry I should have been more clear exposing the problem. What I meant by "automatic type assertion" was something like:
If a is a variable of type interface{}:
b := a.(a.(type)) as a way of getting a's value in its own type.
As I'm writing this, I'm realising of the problem behind this though. The type of b would be unkown and reflection ,or a type switch, would be required to get its type again. So, there's no benefit in such a function I guess.
Thank you for your responses, sorry for the confusion and please comment if you see it in a different way.
Pablo