Import
import { Parser } from "@typed/router/Parser";Access Parser.FlatMap through the imported Parser export. Its declaration below describes the member.
Signatures
interface FlatMap<P extends Any, F extends TypeFunction> extends Parser<unknown> {
readonly return: InputOf<this> extends infer Input extends string ? Apply<P, Input> extends infer R ? [
R
] extends [
never
] ? never : R extends readonly [
infer Value,
infer Rest extends string
] ? Pipe<Value, F> extends infer Next ? [
Next
] extends [
never
] ? never : Next extends Any ? Pipe<Rest, Next> : never : never : never : never : never;
}Why
Dependent grammar remains expressible without losing failure or remainder information.
Ownership and lifetime
TypeScript instantiates FlatMap while parsing a string-literal input; partial results and unconsumed text exist only in the resulting type.
Property: return
Computes this type lambda’s parse result for its current input.
Property: return: Why
The local type-function protocol evaluates each parser combinator through this member without a parallel runtime object.
Property: return: Ownership and lifetime
TypeScript evaluates FlatMap.return when the surrounding parser is applied; the associated result is erased and retains no input at runtime.