CurryInfo: contract-prover-4.0.0 / ContractProver.getIncludePath

definition:
 
getIncludePath :: String -> IO String
getIncludePath incfile = do
  ppinclude <- fmap (</> "include" </> incfile) getPackagePath
  exppinclude <- doesFileExist ppinclude
  if exppinclude
    then return ppinclude
    else do
      let localinclude = "include" </> incfile
      exlocalinclude <- doesFileExist localinclude
      if exlocalinclude
        then return localinclude
        else do putStrLn $
                  "Warning: '" ++ localinclude ++ "' required but not found!"
                return incfile
demand:
 no demanded arguments
deterministic:
 deterministic operation
documentation:
 
Returns the path of a file provided as an argument in the `include`
directory of the package or, if this does not exists,
in the local `include` directory.
If both does not exist, a warning is issued.
failfree:
 <FAILING>
indeterministic:
 referentially transparent operation
infix:
 no fixity defined
iotype:
 {(_) |-> _}
name:
 getIncludePath
precedence:
 no precedence defined
result-values:
 _
signature:
 String -> Prelude.IO String
solution-complete:
 operation might suspend on free variables
terminating:
 possibly non-terminating
totally-defined:
 possibly non-reducible on same data term