CurryInfo: flatcurry-compact-4.0.0 / FlatCurry.Compact.computeCompactFlatCurry

definition: Info
 
computeCompactFlatCurry :: [Option] -> String -> IO Prog
computeCompactFlatCurry orgoptions progname =
  let options = addImport2Options orgoptions in
  if (elem Exports options) && (any isMainOption options)
  then error
        "CompactFlat: Options 'Main' and 'Exports' can't be be used together!"
  else do
    putStr "CompactFlat: Searching relevant functions in module "
    prog <- readCurrentFlatCurry progname
    resultprog <- makeCompactFlatCurry prog options
    putStrLn $ "CompactFlat: Number of functions after optimization: " ++
               show (length (moduleFuns resultprog))
    return resultprog
demand: Info
 no demanded arguments
deterministic: Info
 deterministic operation
documentation: Info
 
Computes a single FlatCurry program containing all functions potentially
called from a set of main functions.
This is done by merging all imported FlatCurry modules (these are loaded
demand-driven so that modules that contains no potentially called functions
are not loaded) and removing the imported functions that are definitely
not used.
@param options  - list of options
@param progname - name of the Curry program that should be compacted
@return the compact FlatCurry program
failfree: Info
 <FAILING>
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {(_,_) |-> _}
name: Info
 computeCompactFlatCurry
precedence: Info
 no precedence defined
result-values: Info
 _
signature: Info
 [Option] -> String -> Prelude.IO FlatCurry.Types.Prog
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term