<? docfiles.forEach(function(doc) { ?>
  # Methods and Operators

  Methods are functions attached to a Stream instance, like `stream.addListener()`. Operators are also methods, but return a new Stream, leaving the existing Stream unmodified, except for the fact that it has a child Stream attached as Listener.

  <? doc.javadoc.forEach(function(comment) { ?>
    <? if (!comment.ignore && comment.name && comment.raw.tags.findIndex(o => o.type === 'factory') === -1) { ?>
      <? if (comment.isMethod || comment.isFunction) { ?>
        ### <a id="<?= comment.name ?>"></a> `<?= comment.name ?>(<?= comment.paramStr ?>)`
      <? } else { ?>
        ### <a id="<?= comment.name ?>"></a> `<?= comment.name ?>`
      <? } ?>

      <?= comment.description ?>

      <? if (comment.deprecated) { ?>
        **Deprecated**
      <? } ?>

      <? if (comment.see) { ?>
        See: <?= comment.see ?>
      <? } ?>

      <? if (comment.paramTags.length > 0) { ?>
        #### Arguments:
        <? comment.paramTags.forEach(function(paramTag) { ?>
          - `<?= paramTag.name ?><? if (paramTag.joinedTypes) { ?>: <?= paramTag.joinedTypes.replace('.', '') ?><? } ?>`<? if (paramTag.description) { ?> <?= paramTag.description ?><? } ?><? }) ?>
      <? } ?>

      <? if (comment.returnTags.length > 0) { ?>
        #### Returns: <? comment.returnTags.forEach(function(returnTag) { ?> <?= returnTag.joinedTypes ?> <?= returnTag.description ?><? }) ?>
      <? } ?>
      - - -
    <? } ?>
  <? }) ?>
<? }) ?>
