CurryInfo: verify-non-fail-2.0.0 / Verify.ESMT.addAllInstancesOfSigs

definition:
 
addAllInstancesOfSigs :: [QIdent] -> [FunSigTerm] -> ([QIdent], [FunSigTerm])
addAllInstancesOfSigs allqids = addAllInsts allqids
 where
  addAllInsts qids fts =
    let (qids1,fts1) = addInstancesOfSigs qids fts
    in if null fts1
         then (qids1,fts)
         else let (qids2,fts2) = addAllInsts
                                   (union qids1 (allQIdsOfSigs fts1 \\ allqids))
                                   (fts ++ fts1)
              in (qids2, fts2)
demand:
 no demanded arguments
deterministic:
 deterministic operation
documentation:
 
Transforms a list of signatures into all its instances required by
sorted identifiers (second argument) and also required by sorted
identifiers in the added instances. Returns also the list of
remaining identifiers.
failfree:
 <FAILING>
indeterministic:
 referentially transparent operation
infix:
 no fixity defined
iotype:
 {(_) |-> {addAllInstancesOfSigs.addAllInsts.331}}
name:
 addAllInstancesOfSigs
precedence:
 no precedence defined
result-values:
 {addAllInstancesOfSigs.addAllInsts.331}
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