anchor.diff:  			myDataWrapper(10);  // is the same as myDataWrapper.set(10);
   			out( myDataWrapper() ); // outputs '10'. Is the same as out( myDataWrapper.get() );
   	*/
  -	Std.require('Std/Traits/basics').addTrait(T,Std.require('Std/Traits/CallableTrait'),fn(obj,params...){
  +	T._call ::= fn(obj,params...){
   		return params.empty() ? this.get() : this.set(params...);
  +	};
  +	onModule('./Traits/CallableTrait', fn(CallableTrait){
  +		require('./Traits/basics').addTrait( T, CallableTrait );
   	});
  -
   }
   // ------------------------------------------
   // (internal) AttributeWrapper ---|> DataWrapper
  
positive.code: 		\code
  			myDataWrapper += fn(newData){	out("The value is now:",newData); };
  	*/
  	T.onDataChanged @(init) := Std.require('Std/MultiProcedure');
  
  	/*! Refresh the internal data from the dataWrapper's data source. If the data has changed,
  		onDataChanged(newData) is called. This function has only to be called  manually if the connected data may change externally.*/
  
negative.code: 		inside of a JSONValueStore, or which is accessible only by function calls.
  		A DataWrapper provides an unified interface, independently from the real location of the value.
  	*/
  	static T = DataWrapper;
  	Std.DataWrapper := T;
  	T._printableName @(override) ::= $DataWrapper;
  
  