I think it would be a good idea to return

_callbacks.afterSelect(t.asInstanceOf[AnyRef]).asInstanceOf[T]
instead of t, this way one can copy the object with a transformation