definition: |
(<!>) :: Parser a -> Parser a -> Parser a p <!> q = \s -> case p s of [] -> q s xs -> xs |
demand: |
no demanded arguments |
deterministic: |
deterministic operation |
documentation: |
Builds a parser that tries its first argument parser and alternatively, if the first one does not succeed, its second argument parser. In contrast to `<|>`, this combinator does not backtrack. The second parser is applied to the leftovers of the first parser. Use it if the alternatives are mutually exclusive. |
failfree: |
(_, _) |
indeterministic: |
referentially transparent operation |
infix: |
infixl |
iotype: |
{(_,_) |-> {<!>._#lambda7}} |
name: |
<!> |
precedence: |
3 |
result-values: |
{<!>._#lambda7} |
signature: |
(String -> [(a, String)]) -> (String -> [(a, String)]) -> String -> [(a, String)] |
solution-complete: |
operation might suspend on free variables |
terminating: |
yes |
totally-defined: |
reducible on all ground data terms |