Required value analysis for Curry programs
            This analysis checks for each function in a Curry program whether
the arguments of a function must have a particular shape in order to
compute some value of this function.
For instance, the negation operation not
            requires the argument
value False
            in order to compute the result True
            and it requires
the argument True
            to compute the result False.
          
Author: Michael Hanus
Version: April 2018
                lubAType
                  ::  AType -> AType -> AType   
                Least upper bound of abstract values.  | 
              
            
                showAType
                  ::  AOutFormat -> AType -> String   
                 | 
              
            
                showAFType
                  ::  AOutFormat -> AFType -> String   
                 | 
              
            
                reqValueAnalysis
                  ::  Analysis AFType   
                Required value analysis.  | 
              
            
Constructors:
Cons
                    ::  [QName] -> AType
              AnyC
                    :: AType
              Any
                    :: AType
              
              The abstract type of a function.
It is either EmptyFunc, i.e., contains no information about
the possible result of the function,
or a list of possible argument/result type pairs.
            
Constructors:
| 
                    
                     
                        | 
                  
                
| 
                    
                     
                        | 
                  
                
| 
                    
                     
                       Required value analysis.  |