Ivy

header "ivy.h"

type bool
interpret bool -> ivy.native_bool

object ivy {

    type cint
    interpret cint -> ivy.native_int[int]

    type func
    type size_t

}
extern action ivy.put(c:ivy.cint)
extern action ivy.get returns (c:ivy.cint)
extern action ivy.resize(f:ivy.func,s:ivy.size_t) returns (f:ivy.func)
extern action ivy.getenv(name:ivy.func) returns (val:ivy.func)
extern action ivy.read_file(name:ivy.func,data:ivy.func) returns (data:ivy.func,ok:bool)
extern action ivy.__write_file(name:ivy.func,data:ivy.func) returns (ok:bool)
extern action ivy.file_exists(name:ivy.func) returns (ok:bool)
extern action ivy.get_argc returns (c:ivy.cint)
extern action ivy.get_argv(name:ivy.func,data:ivy.func) returns (data:ivy.func)
extern action ivy.subproc(cmd:ivy.func) returns (pid:ivy.cint)
extern action ivy.wait(cmd:ivy.cint) returns (pid:ivy.cint)