CurryInfo: call-analysis-3.2.0 / TRS.varsOf

definition: Info
 
varsOf :: Term -> [Int]
varsOf (Var v) = [v]
varsOf (Func _ f args)
  | f == "LAMBDA" = let (largs,lexp) = splitAt (length args - 1) args
                     in varsOf (head lexp) \\ concatMap varsOf largs
  | f == "LET" 
   = let (bindings,lexp) = splitAt (length args - 1) args
         bvars = concatMap (\ (Func _ _ [bvar,_]) -> varsOf bvar) bindings
      in varsOf (head lexp) \\ bvars
  | otherwise = foldr union [] (map varsOf args)
demand: Info
 argument 1
deterministic: Info
 deterministic operation
documentation: Info
 
get all variables in a term:
failfree: Info
 <FAILING>
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {({Var}) |-> {:} || ({Func}) |-> _}
name: Info
 varsOf
precedence: Info
 no precedence defined
result-values: Info
 _
signature: Info
 Term -> [Prelude.Int]
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term