CurryInfo: base-3.4.0 / Prelude.readParen

definition: Info
 
readParen :: Bool -> ReadS a -> ReadS a
readParen b g = if b then mandatory else optional
 where optional r = g r ++ mandatory r
       mandatory r =
         [(x, u) | ("(", s) <- lex r, (x, t) <- optional s, (")", u) <- lex t]
demand: Info
 argument 1
deterministic: Info
 deterministic operation
documentation: Info
 
`readParen True p` parses what `p` parses, but surrounded with parentheses.
`readParen False p` parses what `p` parses, but the string to be parsed
can be optionally with parentheses.
failfree: Info
 (_, _)
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {({True},_) |-> {readParen.mandatory.75} || ({False},_) |-> {readParen.optional.75}}
name: Info
 readParen
precedence: Info
 no precedence defined
result-values: Info
 {readParen.mandatory.75,readParen.optional.75}
signature: Info
 Bool -> ([Char] -> [(a, [Char])]) -> [Char] -> [(a, [Char])]
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term