module Traces

def self.Provider(klass, &block)

Extend the specified class in order to emit traces.
def self.Provider(klass, &block)
	klass.extend(Singleton)
	provider = klass.traces_provider
	klass.prepend(provider)
	
	provider.module_exec(&block) if block_given?
	
	return provider
end

def self.Provider(klass, &block)

def self.Provider(klass, &block)
	# Tracing disabled.
end

def self.enabled?

@returns [Boolean] Whether there is an active backend.
def self.enabled?
	Backend.const_defined?(:Interface)
end