_Strech goal_ The current eFLINT interface policy, designed in #22, is nice but has a little room for improvement. In particular: - [ ] Encode `function` as part of `task` to enforce exactly-one-task-per-function; - [ ] `node-input` should become a predicate over `node-argument` and `function` (i.e., like before, to accomodate moving function up into `task`); - [ ] Add common ancestor for `node-input` and `node-argument` (and therefore `node-input`); - [ ] Move `node-at` to be `task-at`. It seems like `commit`s and `loop`s do not need locations; and - [ ] Look for any other type-level encoding of certain assumptions.
Strech goal
The current eFLINT interface policy, designed in #22, is nice but has a little room for improvement. In particular:
functionas part oftaskto enforce exactly-one-task-per-function;node-inputshould become a predicate overnode-argumentandfunction(i.e., like before, to accomodate moving function up intotask);node-inputandnode-argument(and thereforenode-input);node-atto betask-at. It seems likecommits andloops do not need locations; and