lsts-language-reference

type IO::File;

type phi FileState = Open | Closed;

let phi(left: FileState::Open, right: FileState::Open): FileState::Open;
let phi(left: FileState::Closed, right: FileState::Closed): FileState::Closed;

fopen : (path: String, mode: String) -> IO::File+Phi<FileState::Open>

Minimal type wrapper around C fopen function to check for resource leaks.

fclose : (fp: IO::File+Phi<FileState::Open,FileState::Closed>) -> U32

Minimal type wrapper around C fclose function to check for resource leaks.