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   
lub :: DemandDomain -> DemandDomain -> DemandDomain   
demandAnalysis :: Analysis [Int]   
Demandedness analysis.
daFunc :: FuncDecl -> [((String,String),[Int])] -> [Int]   
daFuncRule :: [((String,String),[Int])] -> Rule -> [Int]   
prelude :: String   

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   

lub :: DemandDomain -> DemandDomain -> DemandDomain   

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

demandAnalysis :: Analysis [Int]   

Demandedness analysis.

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

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

prelude :: String   

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