definition:
|
takeVars :: [VarIndex] -> [a] -> ([VarIndex], [VarIndex])
takeVars fresh [] = (fresh, [])
takeVars (f : fs) (_ : os) = let (fs', os') = takeVars fs os
in (fs', f : os')
takeVars [] (_ : _) = error "Renaming.takeVars: no more fresh variables"
|
demand:
|
argument 2
|
deterministic:
|
deterministic operation
|
failfree:
|
(_, _)
|
indeterministic:
|
referentially transparent operation
|
infix:
|
no fixity defined
|
iotype:
|
{(_,{[]}) |-> {(,)} || ({:},{:}) |-> {(,)}}
|
name:
|
takeVars
|
precedence:
|
no precedence defined
|
result-values:
|
{(,)}
|
signature:
|
[Prelude.Int] -> [a] -> ([Prelude.Int], [Prelude.Int])
|
solution-complete:
|
operation might suspend on free variables
|
terminating:
|
yes
|
totally-defined:
|
reducible on all ground data terms
|