anchor.diff:      ClassMirror cm = _getClassMirrorByTypeName(typeName);
   
       if (cm is TypedefMirror) {
  -      throw error('No implementation provided for $typeName typedef!');
  +      throw new NoProviderException(error('No implementation provided for $typeName typedef!'));
       }
   
       MethodMirror ctor = cm.constructors.values.first;
  
positive.code: 
  class NoProviderException extends ArgumentError {
    NoProviderException(message) : super(message);
    NoProviderException.forType(String typeName) : this('No provider for ${typeName}!');
  }
  
  class CircularDependencyException extends ArgumentError {
  
negative.code:     instances['Injector'] = reflect(this);
    }
  
    String _error(message, [appendDependency]) {
      if (?appendDependency) {
        resolving.add(appendDependency);
      }
  
      String graph = resolving.join(' -> ');
  
      resolving.clear();
  
      return '$message (resolving $graph)';
    }
  
    dynamic _getInstanceByTypeName(String typeName) {
      if (PRIMITIVE_TYPES.contains(typeName)) {
        throw new NoProviderException(_error('Cannot inject a primitive type of ${typeName}!', typeName));
      }
  
      if (instances.containsKey(typeName)) {
  