definition: |
addInstancesOfSigs :: [QIdent] -> [FunSigTerm] -> ([QIdent], [FunSigTerm]) addInstancesOfSigs qids allsigs = addInstsOfSigs qids allsigs where addInstsOfSigs qids0 [] = (qids0,[]) addInstsOfSigs qids0 (fts:ftss) = let (qids1,fts1) = addInstancesOfSig qids0 allsigs fts (qids2,fts2) = addInstsOfSigs qids1 ftss in (qids2, fts1 ++ fts2) |
demand: |
argument 2 |
deterministic: |
deterministic operation |
documentation: |
Adds to given (polymorphic) define-sig elements all its type instances required by qualified identifiers occurring in the first argument provided that it does not already occur in the sig elements. The list of unused qualified identifiers is also returned. |
failfree: |
<FAILING> |
indeterministic: |
referentially transparent operation |
infix: |
no fixity defined |
iotype: |
{(_,_) |-> {(,)}} |
name: |
addInstancesOfSigs |
precedence: |
no precedence defined |
result-values: |
{(,)} |
signature: |
[QIdent] -> [([String], FunSig, Term)] -> ([QIdent], [([String], FunSig, Term)]) |
solution-complete: |
operation might suspend on free variables |
terminating: |
possibly non-terminating |
totally-defined: |
possibly non-reducible on same data term |