$channel StdIn StdOut StdErr; $func Channel = s.Channel; $func? Open-File s.Channel e.FileName s.Mode = ; $func Close-Channel s.Channel = ; $func Parse-File-Name e.FileName = s.DriveWord s.PathWord s.NameWord s.ExtWord; $func? Erase-File e.FileName = ; $func? EOF? s.Channel = ; $func? Read = t.Term; $func? Read-Char = s.Char; $func? Read-Line = e.Char; $func Write e.Expr = ; $func WriteLN e.Expr = ; $func Print e.Expr = ; $func PrintLN e.Expr = ; $func? Read! s.Channel = t.Term; $func? Read-Char! s.Channel = s.Char; $func? Read-Line! s.Channel = e.Char; $func Write! s.Channel e.Expr = ; $func WriteLN! s.Channel e.Expr = ; $func Print! s.Channel e.Expr = ; $func PrintLN! s.Channel e.Expr = ; $func Flush! s.Channel = ; $func? Prim-Open-File s.channel e.file s.mode = ; $func Prim-Close-Channel s.channel = ; $func? Prim-Read s.channel s.n = e.chars; //FIXME: should be a box? $const Read-Chunk-Size = 64;