Module ICurry.Files

Author
Michael Hanus
Version
November 2020

This library defines I/O actions to read and write ICurry programs.

Exported Functions


iCurryFileName :: String -> String  Deterministic 

Transforms a name of a Curry program (with or without suffix ".curry" or ".lcurry") into the name of the file containing the corresponding ICurry program.


iCurryFilePath :: String -> IO String  Deterministic 

Gets the standard ICurry file location for a given Curry module name The Curry source program must exist in the Curry load path, otherwise an error is raised.


readICurry :: String -> IO IProg  Non-deterministic 

Reads an ICurry program from a file in ".icy" format. The argument is the name of the corresponding Curry program.


readICurryFile :: String -> IO IProg  Non-deterministic 

Reads an ICurry program from a file in ".icy" format where the file name is provided as the argument.


writeICurry :: IProg -> IO ()  Non-deterministic 

Writes an ICurry program into a file in ".icy" format. The file is written in the standard location for intermediate files, i.e., in the iCurryFileName relative to the directory of the Curry source program (which must exist!).


writeICurryFile :: String -> IProg -> IO ()  Non-deterministic 

Writes an ICurry program into a file in ".icy" format. The first argument must be the name of the target file (with suffix ".icy").