type tree: {payload: int, void | {l, r: tree*}}
fun treePrint: (root: tree*) -> void {
}
- Declare using named case labels inside struct
- Fields declared before a case are common to all cases
| #include "value.h" | |
| #include <stdio.h> | |
| #include <unistd.h> | |
| #include <gc.h> | |
| #include <common.h> | |
| #include "sym.h" | |
| #include "runner.h" | |
| #include "invoke.h" |
| #include "runner.h" | |
| #include <gc.h> | |
| #include "dirctx.h" | |
| #include "sym.h" | |
| #include "ast.h" | |
| #include "type.h" | |
| #include "value.h" |
| #include <dirent.h> | |
| #define for_dir(entry, dirname, continuation) \ | |
| do { \ | |
| DIR* for_dir_dir__ = opendir(dirname); \ | |
| for (struct dirent* (entry); \ | |
| ((entry) = readdir(for_dir_dir__));) { \ | |
| continuation \ | |
| } \ | |
| closedir(for_dir_dir__); \ |