Implicits without explicit return tyes (which unfortunately includes implicit objects), are not candidates for implicit searches *above* the point of their definition in the same compilation unit, except if their lazy type has been forced by some non-implicit means, e.g by accessing it *explicitly* in some expression that has been previously typechecked. So you can get errors that depend on the order of compilation.