Module Analysis.Demandedness

Demandedness analysis: checks whether functions demands a particular argument, i.e., delivers only bottom if some argument is bottom.

Author: Michael Hanus

Version: May 2013

Summary of exported operations:

showDemand :: AOutFormat -> [Int] -> String  Deterministic 
lub :: DemandDomain -> DemandDomain -> DemandDomain  Deterministic 
demandAnalysis :: Analysis [Int]  Deterministic 
Demandedness analysis.
daFunc :: FuncDecl -> [((String,String),[Int])] -> [Int]  Deterministic 
daFuncRule :: [((String,String),[Int])] -> Rule -> [Int]  Deterministic 
prelude :: String  Deterministic 

Exported datatypes:


DemandedArgs

Data type to represent information about demanded arguments. Demanded arguments are represented as a list of indices for the arguments, where arguments are numbered from 1.

Type synonym: DemandedArgs = [Int]


DemandDomain

Constructors:

  • Bot :: DemandDomain
  • Top :: DemandDomain

Exported operations:

showDemand :: AOutFormat -> [Int] -> String  Deterministic 

lub :: DemandDomain -> DemandDomain -> DemandDomain  Deterministic 

Further infos:
  • solution complete, i.e., able to compute all solutions

demandAnalysis :: Analysis [Int]  Deterministic 

Demandedness analysis.

daFunc :: FuncDecl -> [((String,String),[Int])] -> [Int]  Deterministic 

daFuncRule :: [((String,String),[Int])] -> Rule -> [Int]  Deterministic 

prelude :: String  Deterministic 

Further infos:
  • solution complete, i.e., able to compute all solutions