Module FlatCurry.ShowIntMod

This module contains various operations to show a FlatCurry program in human-readable forms, e.g., only the interface or also the complete program translated back into pattern-based rules. These operations are used in the Curry Browser and they are also the basis to implement the :interface command of PAKCS or KiCS2.

The interface description contains the type declarations for all entities defined and exported by this module.

The human-readable presentation is (almost) Curry source code generated from a FlatCurry program.

Author: Michael Hanus

Version: February 2023

Summary of exported operations:

showInterface :: Bool -> Prog -> String  Deterministic 
showCurryModule :: Prog -> String  Non-deterministic 
showCurryDataDecl :: ((String,String) -> String) -> TypeDecl -> String  Deterministic 
showCurryFuncDecl :: ((String,String) -> String) -> ((String,String) -> String) -> FuncDecl -> String  Non-deterministic 
leqFunc :: FuncDecl -> FuncDecl -> Bool  Deterministic 
showFlatCurry :: Prog -> String  Deterministic 
Show FlatCurry module in pretty-printed form
showFuncDeclAsCurry :: FuncDecl -> String  Non-deterministic 
showFuncDeclAsFlatCurry :: FuncDecl -> String  Deterministic 
funcModule :: FuncDecl -> String  Deterministic 

Exported operations:

showInterface :: Bool -> Prog -> String  Deterministic 

showCurryModule :: Prog -> String  Non-deterministic 

showCurryDataDecl :: ((String,String) -> String) -> TypeDecl -> String  Deterministic 

showCurryFuncDecl :: ((String,String) -> String) -> ((String,String) -> String) -> FuncDecl -> String  Non-deterministic 

leqFunc :: FuncDecl -> FuncDecl -> Bool  Deterministic 

showFlatCurry :: Prog -> String  Deterministic 

Show FlatCurry module in pretty-printed form

showFuncDeclAsCurry :: FuncDecl -> String  Non-deterministic 

showFuncDeclAsFlatCurry :: FuncDecl -> String  Deterministic 

funcModule :: FuncDecl -> String  Deterministic