anchor.diff:                  | _ -> (Violation ([!!"InvalidArgumentType"; !!"Unary"; !!(String.capitalize fnName)], "Cannot apply a bool function to a non-bool value.", Expr.getOriginOpt evaled), env)
               | _ -> (Violation ([!!"InvalidArgumentCount"; !!"Unary"; !!(String.capitalize fnName)], "Incorrect number of arguments for application of '" + fnName + "'; 1 argument required.", fnOptOrigin), env)
   
  -        let evalBoolBinary fnOptOrigin fnName fn evaledArgs env =
  +        let evalBoolBinary fn fnOptOrigin fnName evaledArgs env =
               match evaledArgs with
               | [evaledLeft; evaledRight] ->
                   match (evaledLeft, evaledRight) with
  
positive.code: open Nu
  open Nu.Scripting
  #nowarn "21"
  #nowarn "40"
  
  [<AutoOpen>]
  
negative.code:                 | (_, _) -> (Violation ([!!"InvalidArgumentType"; !!"V2"; !!(String.capitalize fnName)], "Application of " + fnName + " requires a single for the both arguments.", fnOptOrigin), env)
              | _ -> (Violation ([!!"InvalidArgumentCount"; !!"V2"; !!(String.capitalize fnName)], "Incorrect number of arguments for application of '" + fnName + "'; 2 arguments required.", fnOptOrigin), env)
  
          and Intrinsics =
              dictPlus
                  [("!", evalBoolUnary not)
                   ("&", evalBoolBinary (&&))
                   ("|", evalBoolBinary (||))
                   ("=", evalBinary EqFns)
                   ("<>", evalBinary NotEqFns)
                   ("<", evalBinary LtFns)
                   (">", evalBinary GtFns)
                   ("<=", evalBinary LtEqFns)
                   (">=", evalBinary GtEqFns)
                   ("+", evalBinary AddFns)
                   ("-", evalBinary SubFns)
                   ("*", evalBinary MulFns)
                   ("/", evalBinary DivFns)
                   ("%", evalBinary ModFns)
                   ("pow", evalBinary PowFns)
                   ("root", evalBinary RootFns)
                   ("sqr", evalUnary SqrFns)
                   ("sqrt", evalUnary SqrtFns)
                   ("floor", evalUnary FloorFns)
                   ("ceiling", evalUnary CeilingFns)
                   ("truncate", evalUnary TruncateFns)
                   ("round", evalUnary RoundFns)
                   ("exp", evalUnary ExpFns)
                   ("log", evalUnary LogFns)
                   ("sin", evalUnary SinFns)
                   ("cos", evalUnary CosFns)
                   ("tan", evalUnary TanFns)
                   ("asin", evalUnary AsinFns)
                   ("acos", evalUnary AcosFns)
                   ("atan", evalUnary AtanFns)
                   ("length", evalUnary LengthFns)
                   ("normal", evalUnary NormalFns)
                   ("cross", evalBinary CrossFns)
                   ("dot", evalBinary DotFns)
                   ("bool", evalUnary BoolFns)
                   ("int", evalUnary IntFns)
                   ("int64", evalUnary Int64Fns)
                   ("single", evalUnary SingleFns)
                   ("double", evalUnary DoubleFns)
                   ("string", evalUnary StringFns)
                   ("v2", evalV2)
                   //("xOf", evalNOf 0)
                   //("yOf", evalNOf 1)
                   //("xAs", evalNAs 0)
                   //("yAs", evalNas 1)
                   ("some", evalSome)
                   ("isSome", evalIsSome)
                   ("head", evalHead)
                   ("tail", evalTail)
                   ("cons", evalCons)
                   ("isEmpty", evalIsEmpty)
                   ("fst", evalNth5 0)
                   ("snd", evalNth5 1)
                   ("thd", evalNth5 2)
                   ("fth", evalNth5 3)
                   ("fif", evalNth5 4)
                   ("nth", evalNth)
                   ("product", evalProduct)]
  
          and evalIntrinsic originOpt name args env =
              match Intrinsics.TryGetValue name with
              | (true, intrinsic) -> intrinsic originOpt name args env
              | (false, _) -> (Violation ([!!"InvalidFunctionTargetBinding"], "Cannot apply a non-existent binding.", originOpt), env)
  
          and isIntrinsic name =
              Intrinsics.ContainsKey name
  
          and evalProduct originOpt name args env =
              match args with
  