def Provides(*interfaces):
 spec = InstanceDeclarations.get(interfaces)
 if (spec is None):
  spec = ProvidesClass(*interfaces)
  InstanceDeclarations[interfaces] = spec
 return spec

def Provides ( * interfaces ) : spec = InstanceDeclarations . get ( interfaces ) if ( spec is None ) : spec = ProvidesClass ( * interfaces ) InstanceDeclarations [ interfaces ] = spec return spec
cache instance declarations instance declarations are shared among instances that have the same declaration .