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
February 2025

Exported Datatypes


type DemandedArgs = [Int]

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.


data DemandDomain

Constructors:

  • Bot :: DemandDomain
  • Top :: DemandDomain

Known instances:


Exported Functions


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