
An attempt at distilling some mainlines from TODO.

-  better structuring and sectioning of source code.
   parse/segment/digest include most of each other,
   due e.g. to seg_check_ok and yamFormatted1.

-  Env well-formedness should pbb best be checked at output time,
   not during processing time. It should be possible (?) to make
   contrived examples failing during processing time, producing
   correct output nevertheless.

-  A design for allowing overwriting primitives?
   A design for setting keys in the bottom dictionary (defg, defgx, setg, setgx)
   An extenstion design where zoem primitives are lexically recognizable.
   Hum.
      g  global
      x  expand
      c  conditional (only if not defined)

-  implement append modes \writeto{a}{name}, \write{a}{name}{filter}{stuff}.
   For writeto also make commandline switch that makes \writeto{name}
   append by default.

-  better hashing of file pointers (right now by name,
   so foo and ./foo are different).

-  remove 9-arg limitation.

-  better special/level design.

-  the implementation of f#2 f#3 and fv#2 is very straightforward
   from a numerical point of view.

-  (ever) better separate character munging code.
   clearer grip on device whitespace munging and special rules
   for the extreme corner cases.

-  fix long routines.

-  reconsider tracing implementation.

-  who gets to err and why (given all the unwinding)?



further qualify stacks + dictionaries with associated sink?
or, perhaps,

\get{itemize}{foo}
   will search across all stacks irrespective of sink.

zum.azm:
   boot  wt    new
   1     0     1
   0     0     1
   0     0     0  
   0     0     1

zoem.azm
   boot  wt    new
   1     0     1
   0     0     1
   0     1     1


  [][][][]|    |
          |____|
            ^
            ^
  [][][][]|    | ----------------- .....
          |____|                                         
            ^                                  [][][][]|    |
            ^                                          |____|
  [][][][]|    | ----------------- .....                 ^
          |____|                                         ^
            ^                                            sink_default 
            ^                                            writeto
            busystack
               push
               pop

               getDLRtop


dollarstack tied to output.
default dollarstack: changed by writeto.


aephea:
   \writeto{-}
      \begin{presentation}
   \writeto{1.html}
      \begin{slide}
           \get{$presentation}{foo}
           \write{index.htmL}{device}{.... ??\get{$presentation}{foo}?? ...}
      \end{slide}


write3
      yamOutputNew(fname->str))
      yamKeyDef("__fnwrite__", fname->str)
      yamOutput(yamtxt, xfout->usr, fltidx)
         sinkPush(sk, fltidx)
         sinkPop(sk)





writeto
   yamOutputClose
   yamOutputNew
      if (!xf->usr)
      xf->usr = sinkNew
      else
      filterSetFP
   sinkPush
   ## changed sinkPush: does this fix it?

write

-  in zpresent \writeto{} makes env {presentation} inaccessible.
   1) is there a global dollar stack? (yes, sinkGetDLRdefault)
   2) why is env presentation not tied to it?
      a) is there a way to tie it?
      b) if no, make it.
         -> way to specify that dictionary should be tied to DLRdefault.
         -> OR \writeto should act the same as \write
         -> and optionally make that configurable.



