Module ShowFlatCurry

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: December 2018

Summary of exported operations:

main :: IO ()   
showInterface :: Bool -> Prog -> String   
showCurryModule :: Prog -> String   
showCurryFuncDecl :: ((String,String) -> String) -> ((String,String) -> String) -> FuncDecl -> String   
leqFunc :: FuncDecl -> FuncDecl -> Bool   
showFlatCurry :: Prog -> String   
Show FlatCurry module in pretty-printed form
showFuncDeclAsCurry :: FuncDecl -> String   
showFuncDeclAsFlatCurry :: FuncDecl -> String   
funcModule :: FuncDecl -> String   

Exported operations:

main :: IO ()   

showInterface :: Bool -> Prog -> String   

showCurryModule :: Prog -> String   

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

leqFunc :: FuncDecl -> FuncDecl -> Bool   

showFlatCurry :: Prog -> String   

Show FlatCurry module in pretty-printed form

showFuncDeclAsCurry :: FuncDecl -> String   

showFuncDeclAsFlatCurry :: FuncDecl -> String   

funcModule :: FuncDecl -> String