whole_func_string: function(fn) {
        var paragraphs = this.trim().split(/[\r\n]{2,}/);
        paragraphs = paragraphs.map(function(p) {
          if(fn) var s = fn.call(p);
          return s ? s : p;
        });
        return paragraphs;
      }
func_code_string: function(fn) {
        var paragraphs = this.trim().split(/[\r\n]{2,}/);
        paragraphs = paragraphs.map(function(p) {
          if(fn) var s = fn.call(p);
          return s ? s : p;
        });
        return paragraphs;
      }
func_documentation_string: *
  @method paragraphs([fn])
  @returns Array
  @short Runs callback [fn] against each paragraph in the string. Returns an array of paragraphs.
  @extra A paragraph here is defined as a block of text bounded by two or more line breaks.
  @example
  
  'Once upon a time.\n\nIn the land of oz...'.paragraphs() -> ['Once upon a time.','In the land of oz...']
  'Once upon a time.\n\nIn the land of oz...'.paragraphs(function(p) {
  // Called twice: "Once upon a time.", "In teh land of oz..."
  });
  
  *