import { Parser, List, Node } from '../parser'; import { fmap } from './fmap'; export function reverse

(parser: P): P; export function reverse(parser: Parser): Parser { return fmap(parser, nodes => nodes.foldr((node, acc) => acc.push(nodes.delete(node)), new List>())); }