anchor.diff:          { CommandName : string
             CommandArgs : Expr list }
   
  -    /// A function or lambda argument.
  -    and [<NoComparison>] Arg =
  -        { ArgName : string
  -          ArgExpr : Expr }
  -
       and [<NoComparison>] LetBinding =
           | LetVariable of string * Expr
  -        | LetFunction of string * Arg list * Expr
  +        | LetFunction of string * string list * Expr
   
       and [<NoComparison>] Stream =
           // constructed as [variableStream v]
  
positive.code:         member this.SymbolToExpr symbol =
              this.ConvertFrom symbol :?> Expr
  
          override this.CanConvertTo (_, destType) =
              destType = typeof<Symbol> ||
              destType = typeof<Expr>
  
negative.code:                                 try let tagName = !!tagStr in Violation (Name.split [|'/'|] tagName, errorMsg, originOpt) :> obj
                                  with exn -> Violation ([!!"InvalidViolationForm"], "Invalid violation form. Violation tag must be composed of 1 or more valid names.", originOpt) :> obj
                              | _ -> Violation ([!!"InvalidViolationForm"], "Invalid violation form. Requires 1 tag.", originOpt) :> obj
                          | "let" ->
                              match tail with
                              | [bindings; body] ->
                                  match bindings with
                                  | Symbols (symbols, originOpt) ->
                                      match symbols with
                                      | [binding] ->
                                          match binding with
                                          | Symbols (bindingSymbols, originOpt) ->
                                              match this.SymbolToLetBindingOpt bindingSymbols with
                                              | Some binding -> Let (binding, this.SymbolToExpr body, originOpt) :> obj
                                              | None -> Violation ([!!"InvalidLetForm"], "Invalid let form. TODO: more info.", originOpt) :> obj
                                          | _ -> Violation ([!!"InvalidLetForm"], "Invalid let form. TODO: more info.", originOpt) :> obj
                                      | _ -> Violation ([!!"InvalidLetForm"], "Invalid let form. TODO: more info.", originOpt) :> obj
                                  | _ -> Violation ([!!"InvalidLetForm"], "Invalid let form. TODO: more info.", originOpt) :> obj
                              | _ -> Violation ([!!"InvalidLetForm"], "Invalid let form. TODO: more info.", originOpt) :> obj
                          | "if" ->
                              match tail with
                              | [condition; consequent; alternative] -> If (this.SymbolToExpr condition, this.SymbolToExpr consequent, this.SymbolToExpr alternative, originOpt) :> obj
  