The reflection environment differs based on whether the reflective task is to be done at run time or at compile time. The distinction between an environment to be used at run time or compile time is encapsulated in a so-called universe. Another important aspect of the reflective environment is the set of entities that we have reflective access to. This set of entities is determined by a so-called mirror.
This is a companion discussion topic for the original entry at http://docs.scala-lang.org//overviews/reflection/environment-universes-mirrors