whole_func_string: function filterSubtrees(pred, tree) {
    return new RoseTree(
      tree.root,
      function() {
        return tree.children().filter(function(subtree) {
          return pred(subtree.root);
        }).map(filterSubtrees.bind(null, pred));
      }
    );
  }
func_code_string: function filterSubtrees(pred, tree) {
    return new RoseTree(
      tree.root,
      function() {
        return tree.children().filter(function(subtree) {
          return pred(subtree.root);
        }).map(filterSubtrees.bind(null, pred));
      }
    );
  }
func_documentation_string: RoseTree a -> (a -> Bool) -> RoseTree a