Determinism analysis: checks whether functions are deterministic or nondeterministic, i.e., whether its evaluation on ground argument terms might cause different computation paths.
Author: Michael Hanus
Version: August 2016
                overlapAnalysis
                  ::  Analysis Bool   
                 | 
              
            
                showOverlap
                  ::  AOutFormat -> Bool -> String   
                 | 
              
            
                functionalAnalysis
                  ::  Analysis Bool   
                 | 
              
            
                showFunctional
                  ::  AOutFormat -> Bool -> String   
                 | 
              
            
                showDet
                  ::  AOutFormat -> Deterministic -> String   
                 | 
              
            
                nondetAnalysis
                  ::  Analysis Deterministic   
                 | 
              
            
                showNonDetDeps
                  ::  AOutFormat -> [((String,String),[(String,String)])] -> String   
                 | 
              
            
                nondetDepAnalysis
                  ::  Analysis [((String,String),[(String,String)])]   
                Non-deterministic dependency analysis.  | 
              
            
                nondetDepAllAnalysis
                  ::  Analysis [((String,String),[(String,String)])]   
                Non-deterministic dependency analysis.  | 
              
            
Data type to represent determinism information.
Constructors:
NDet
                    :: Deterministic
              Det
                    :: Deterministic
              | 
                    
                     
                        | 
                  
                
| 
                    
                     
                       
  | 
                  
                
| 
                    
                     
                        | 
                  
                
| 
                    
                     
                       
  | 
                  
                
| 
                    
                     
                       
  | 
                  
                
| 
                    
                     
                        | 
                  
                
| 
                    
                     
                       Non-deterministic dependency analysis. The analysis computes for each operation the set of operations with a non-deterministic definition which might be called by this operation. Non-deterministic operations that are called by other non-deterministic operations are ignored so that only the first (w.r.t. the call sequence) non-deterministic operations are returned.  | 
                  
                
| 
                    
                     
                       Non-deterministic dependency analysis. The analysis computes for each operation the set of all operations with a non-deterministic definition which might be called by this operation.  |