static protected function refDefs($childs=null) {
		$gname = get_called_class();
		$key = $gname . ( $childs ? '::' . $childs : '' );
		if (key_exists($key, static::$refDefCache)) { return static::$refDefCache[$key]; }
		$defs = static::selfRefDefs($key);
		foreach (class_uses($gname) as $trait) {
			if ('dt' != substr($trait, 0, 2)) { continue; }
			$traitName = substr($trait, 2);
			$callable = [ $gname, 'refDefs' . $traitName, ];
			$defs = array_merge($defs, call_user_func($callable, $key));
		}
		if ($parent = get_parent_class($gname)) {
			$defs = array_merge($defs, $parent::refDefs($key));
		}
		static::$refDefCache[$key] = $defs;
		return $defs;
	}