docs: function (type, definitions) {
        var isPrimitive, listType;
  
        if (type instanceof Array) {
          listType = true;
          type = type[0];
        }
  
        // Convert undefined to string of 'undefined'
        if (typeof type === 'undefined') {
          type = 'undefined';
          isPrimitive = true;
  
        } else if (definitions[type]){
          // a model def exists?
          type = definitions[type]; /* Model */
          isPrimitive = false;
  
        } else if (getInlineModel(type)) {
          type = getInlineModel(type); /* Model */
          isPrimitive = false;
  
        } else {
          // We default to primitive
          isPrimitive = true;
        }
  
        if (isPrimitive) {
          if (listType) {
            return 'Array[' + type + ']';
          } else {
            return type.toString();
          }
        } else {
          if (listType) {
            return 'Array[' + getModelSignature(type.name, type.definition, type.models, type.modelPropertyMacro) + ']';
          } else {
            return getModelSignature(type.name, type.definition, type.models, type.modelPropertyMacro);
          }
        }
    }