CurryInfo: contract-prover-4.0.0 / ContractProver.normalizeArgs

definition: Info
 
normalizeArgs :: [TAExpr] -> TransStateM ([(Int,TAExpr)],[TAExpr])
normalizeArgs [] = return ([],[])
normalizeArgs (e:es) = case e of
  AVar _ i -> do (bs,nes) <- normalizeArgs es
                 return ((i,e):bs, e:nes)
  _        -> do fvar <- getFreshVar
                 addVarTypes [(fvar,annExpr e)]
                 (bs,nes) <- normalizeArgs es
                 return ((fvar,e):bs, AVar (annExpr e) fvar : nes)
demand: Info
 argument 1
deterministic: Info
 deterministic operation
failfree: Info
 _
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {({[]}) |-> _ || ({:}) |-> _}
name: Info
 normalizeArgs
precedence: Info
 no precedence defined
result-values: Info
 _
signature: Info
 [FlatCurry.Annotated.Types.AExpr FlatCurry.Types.TypeExpr]
-> Control.Monad.Trans.State.StateT TransState Prelude.IO ([(Prelude.Int, FlatCurry.Annotated.Types.AExpr FlatCurry.Types.TypeExpr)], [FlatCurry.Annotated.Types.AExpr FlatCurry.Types.TypeExpr])
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 reducible on all ground data terms