module System import Data.So %cg chicken (use posix) exportsleep : Int -> IO ()sleep sec = schemeCall () "blodwen-sleep" [sec] exportusleep : (x : Int) -> So (x >= 0) => IO ()usleep usec = schemeCall () "blodwen-usleep" [usec] exportgetArgs : IO (List String)getArgs = schemeCall (List String) "blodwen-args" [] %foreign "scheme:getenv"prim_getEnv : String -> PrimIO String %foreign "scheme:blodwen-hasenv"prim_hasEnv : String -> PrimIO Int exportgetEnv : String -> IO (Maybe String)getEnv var = do ok <- primIO $ prim_hasEnv var if ok == 0 then pure Nothing else map pure $ primIO (prim_getEnv var) %foreign "scheme:blodwen-system"prim_system : String -> PrimIO Int exportsystem : String -> IO Intsystem cmd = primIO (prim_system cmd) exporttime : IO Integertime = schemeCall Integer "blodwen-time" []
module System
import Data.So
%cg chicken (use posix)
export
sleep : Int -> IO ()
sleep sec = schemeCall () "blodwen-sleep" [sec]
export
usleep : (x : Int) -> So (x >= 0) => IO ()
usleep usec = schemeCall () "blodwen-usleep" [usec]
export
getArgs : IO (List String)
getArgs = schemeCall (List String) "blodwen-args" []
%foreign "scheme:getenv"
prim_getEnv : String -> PrimIO String
%foreign "scheme:blodwen-hasenv"
prim_hasEnv : String -> PrimIO Int
export
getEnv : String -> IO (Maybe String)
getEnv var
= do ok <- primIO $ prim_hasEnv var
if ok == 0
then pure Nothing
else map pure $ primIO (prim_getEnv var)
%foreign "scheme:blodwen-system"
prim_system : String -> PrimIO Int
export
system : String -> IO Int
system cmd = primIO (prim_system cmd)
export
time : IO Integer
time = schemeCall Integer "blodwen-time" []