is it possible to have a method that takes an arbitrary instance and returns a java.reflection.Proxy or similar that has the same type as the original argument?
I guess it should look something like this:
def createProxy[S](model: S)(implicit manifest: Manifest[S]): S = {...}
or this
def createProxy[S, T<:S](model: S)(implicit manifest: Manifest[S]): T = {...}
where T is the subtype of S which results from a combination of all the implemented interfaces, since it doesn't seem like I can Proxy an actual class, but only interfaces.