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

(parser: Parser.IntermediateParser

, f: (nodes: List>>, input: Parser.Input

, output: Output>) => List>>): P; export function fmap

(parser: P, f: (nodes: List>>, input: Parser.Input

, output: Output>) => List>>): P; export function fmap(parser: Parser, Parser.SubParsers

>, f: (nodes: List>, input: Parser.Input

, output: Output>) => List>>): P; export function fmap(parser: P, f: (nodes: List>>, input: Parser.Input

, output: Output>) => List>): Parser, Parser.SubParsers

>; export function fmap(parser: Parser, f: (nodes: List>, input: Input, output: Output) => List>): Parser { return bind(parser, (nodes, input, output) => f(nodes, input, output)); }