* Stuff I've found ** Why do I need to call flan-dev to open another window? let: flan: the program exited; restart flan dev ** I can't eval a toplevel defvar, need to eval-defun (C-c C-c) For Flan’s intended live-program workflow, C-x C-e on any complete top-level form should do the natural thing: - expression → compile/run temporary thunk; print its value - defn, defvar, defmacro, etc. → compile/install it; report what changed The compiler already has both paths. The current split is an editor/UI artifact: C-x C-e is wired directly to eval-expr, while C-c C-c is wired to declaration reload. It is not a fundamental limitation. A good fix would make C-x C-e context-aware: if the enclosing form is top-level, send it through the declaration evaluator; otherwise use expression evaluation. Then C-c C-c can remain a convenient explicit “reload this definition” alias, but not the only way defvar works. ** I can't eval a top level Vec slurp returns (Vec u8), an owning, move-only buffer. Flan currently forbids every move-only global because it has no global ownership/lifetime model: any function could read and free it, while ownership tracking only exists within one function. For data that is fixed at build time, use an embedded immutable array instead: (defconst the-data (embed "game-data.edn")) That produces a fixed [u8], not a heap-owning Vec, so it can live globally. It also resolves relative to sand.flan. If game-data.edn genuinely must be loaded at runtime, then today it has to be owned by a local—typically load it in main and pass it through the functions that need it. For a game-wide runtime-owned data asset, that is a missing language/runtime feature, not a bad use case on your part. ** The edn module seems to need a struct declaration, it should do both; go into a struct but also return a Map with Vecs and Sets when we don't provide a type ** defenum needs optional autoincrementing discriminants ** We need a javascript backend so we can reach the world ** We need to have C-style unions, maybe those are called defunion, and then sum types are defdata or deftype