This module provides transforms FlatCurry programs for concolic evaluation:
Author: Jan Tikovsky
Version: August 2017
                get
                  ::  ICM Int   
                 | 
              
            
                put
                  ::  Int -> ICM ()   
                 | 
              
            
                freshID
                  ::  ICM Int   
                Generate a fresh identifier  | 
              
            
                idCases
                  ::  [AFuncDecl a] -> ([AFuncDecl (a,Maybe Int,Bool)],Int)   
                Annotate case expressions with fresh identifiers and mark literals  | 
              
            
                idFunc
                  ::  AFuncDecl (a,Maybe Int,Bool) -> ICM (AFuncDecl (a,Maybe Int,Bool))   
                 | 
              
            
                idRule
                  ::  ARule (a,Maybe Int,Bool) -> ICM (ARule (a,Maybe Int,Bool))   
                 | 
              
            
                idExpr
                  ::  AExpr (a,Maybe Int,Bool) -> ICM (AExpr (a,Maybe Int,Bool))   
                 | 
              
            
Identify Cases Monad
Constructors: