+inline fun <reified T : Any> Injector.getInstance(annotation: Annotation? = null): T = annotation
+ ?.let { getInstance(Key.get(object : TypeLiteral<T>() {}, it)) }
+ ?: getInstance(Key.get(object : TypeLiteral<T>() {}))
+
+
+inline fun <reified T : Any> Injector.verifySingletonInstance(annotation: Annotation? = null) {
+ val firstInstance = getInstance<T>(annotation)
+ val secondInstance = getInstance<T>(annotation)
+ assertThat(firstInstance, sameInstance(secondInstance))
+}