Module FlatCurry.Typed.Read

Some operations to read type-annotated FlatCurry programs.

Author: Michael Hanus

Version: October 2021

Summary of exported operations:

readSimpTypedFlatCurryWithSpec :: Options -> String -> IO (AProg TypeExpr)  Non-deterministic 
Reads a typed FlatCurry program together with a possible _SPEC program (containing further contracts) and simplify some expressions (see module FlatCurry.Typed.Simplify).
readTypedFlatCurryWithSpec :: Options -> String -> IO (AProg TypeExpr)  Non-deterministic 
Reads a typed FlatCurry program together with a possible _SPEC program (containing further contracts).
readTypedFlatCurryWithoutForall :: String -> IO (AProg TypeExpr)  Non-deterministic 
Reads a typed FlatCurry program and remove all leading ForallType quantifiers from function signatures.
stripForall :: TypeExpr -> TypeExpr  Deterministic 
getAllFunctions :: IORef VState -> [(String,String)] -> IO [AFuncDecl TypeExpr]  Non-deterministic 
Extract all user-defined typed FlatCurry functions that might be called by a given list of functions.

Exported operations:

readSimpTypedFlatCurryWithSpec :: Options -> String -> IO (AProg TypeExpr)  Non-deterministic 

Reads a typed FlatCurry program together with a possible _SPEC program (containing further contracts) and simplify some expressions (see module FlatCurry.Typed.Simplify).

readTypedFlatCurryWithSpec :: Options -> String -> IO (AProg TypeExpr)  Non-deterministic 

Reads a typed FlatCurry program together with a possible _SPEC program (containing further contracts). All leading ForallType quantifiers are removed from function signatures since they are not relevant here.

readTypedFlatCurryWithoutForall :: String -> IO (AProg TypeExpr)  Non-deterministic 

Reads a typed FlatCurry program and remove all leading ForallType quantifiers from function signatures.

getAllFunctions :: IORef VState -> [(String,String)] -> IO [AFuncDecl TypeExpr]  Non-deterministic 

Extract all user-defined typed FlatCurry functions that might be called by a given list of functions.