CurryInfo: base-3.4.0 / System.Console.GetOpt.getOpt'

definition: Info
 
getOpt' :: ArgOrder a                         -- non-option handling
        -> [OptDescr a]                       -- option descriptors
        -> [String]                           -- the command-line arguments
        -> ([a],[String], [String] ,[String]) -- (options,non-options,unrecognized,error messages)
getOpt' _        _        []         =  ([],[],[],[])
getOpt' ordering optDescr (arg:args) = procNextOpt opt ordering where
  procNextOpt (Opt o)      _                 = (o:os,xs,us,es)
  procNextOpt (UnreqOpt u) _                 = (os,xs,u:us,es)
  procNextOpt (NonOpt x)   RequireOrder      = ([],x:rest,[],[])
  procNextOpt (NonOpt x)   Permute           = (os,x:xs,us,es)
  procNextOpt (NonOpt x)   (ReturnInOrder f) = (f x :os, xs,us,es)
  procNextOpt EndOfOpts    RequireOrder      = ([],rest,[],[])
  procNextOpt EndOfOpts    Permute           = ([],rest,[],[])
  procNextOpt EndOfOpts    (ReturnInOrder f) = (map f rest,[],[],[])
  procNextOpt (OptErr e)   _                 = (os,xs,us,e:es)

  (opt,rest) = getNext arg args optDescr
  (os,xs,us,es) = getOpt' ordering optDescr rest
demand: Info
 argument 3
deterministic: Info
 deterministic operation
failfree: Info
 (_, _, _)
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {(_,_,{[]}) |-> {(,,,)} || (_,_,{:}) |-> {(,,,)}}
name: Info
 getOpt'
precedence: Info
 no precedence defined
result-values: Info
 {(,,,)}
signature: Info
 ArgOrder a -> [OptDescr a] -> [String] -> ([a], [String], [String], [String])
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term