anchor.diff:    <h2>In Depth: Variables</h2>
   </div>
       
  +    &gt; implies movement -- putting data somewhere always implies shuffling a copy to somewhere else.
  +    
  +    references (in-pipeline mutation, copy-on-write, $foo and _foo (copy-on-read)
  +    
       ----- talk about pipeline vars, injected vars, imported vars, and then space vars
       
       (so pipelines are actually DAGs)
  
positive.code: Daimio is a framework for building programmable web applications, as well as the dataflow language used within that framework. 
  
  On this page all Daimio statements are wrapped in braces. Any line which begins with an open brace will be processed as a Daimio statement, and the following line indicates the desired outcome. Green means it passed, red indicates failure. Output is converted to JSON for display in the REPL and the examples below.
  
  
  <div class="page-header" id="id_daimio_primer">
  
negative.code:   
      There's a few disadvantages to this approach in a traditional language, like awkward syntax for if-then-else (which becomes a function that takes a boolean expression and two callbacks). But we find that in a dataflow language like Daimio the convention is quite natural, and any semantic clumsiness is outweighed by the advantages:
      - no distinction between built-ins and application functionality means you can easily create new low-level control constructs.
      - "everything is a command" reduces conceptual weight: all commands return a value, all commands take named parameters, parameter evaluation timing is consistent, and so on.
      - facilities that affect commands (like aliases) can be used on anything in the system -- no special cases.
    
      We saw in the primer that commands have a handler, a method and named parameters, and that parameter order is irrelevant.
  