anchor.diff:      exp 0Q // 1
   
   
  -module ``We can also parse F# quotations`` =
  +module ``Parse F# quotations`` =
   
       Quotations.parse <@ 3 @> // 3
       Quotations.parse <@ x @> // x
  
positive.code:     Trigonometric.simplify (sin(x) + sin(y) - 2*sin(x/2+y/2)*cos(x/2-y/2))
  
  
  module ``Polynomial Division`` =
  
      Polynomial.polynomialDivision x (5*x**2 + 4*x + 1) (2*x + 3) // (-7/4 + (5/2)*x, 25/4)
  
negative.code:     evaluate symbols (sin(a) + ln(b)) // Real 2.007909715
      evaluate symbols (a*x**2 + b*x + c |> Structure.substitute x (number 1/2)) // Complex (3, -1)
      evaluate symbols (1Q/0Q) // ComplexInf
  
  
  module ``Primitive Equation Solver`` =
  
      let solve x expr =
  
          let expr' = Rational.rationalSimplify x expr |> Algebraic.expand
  
          if Polynomial.isPolynomial x expr' then
              match Polynomial.coefficients x expr' with
              | [||] -> Undefined
              | [| a |] -> x
              | [| a; b |] -> -a/b
              | _ -> failwith "higher polynomials not supported"
  
          else failwith "only general polynomial expressions supported for now"
  
      // 2+3*x = 0 --> x =
      solve x (2+3*x) // -2/3
  
      // sin(a)+x*cos(b)+c = 0 --> x =
      solve x (sin(a)+x*cos(b)+c) // (-1)*(c + sin(a))*cos(b)^(-1)
  
      // (x^2-1)/(x+1) = 0 --> x =
      solve x ((x**2-1)/(x+1)) // 1
  
      /// Solve simple a=b line equations to y=f(x) form
      let solveLine x y a b =
          let z = solve y (a-b) |> Algebraic.expand |> Rational.rationalSimplify x
          let z' = z |> Algebraic.expand |> Polynomial.collectTerms x
          if z' <> Undefined then z' else z
  
      solveLine x y (x/2+y/3) 1Q // 3 + (-3/2)*x   -->  x/2 + y/3 = 1  ->  y = -3/2*x + 3
      solveLine x y (x/a) ((x+y)/b) // ((-1) + a^(-1)*b)*x
      solveLine x y ((y/x-2)/(1-3/x)) 6Q // (-18) + 8*x
  
  
  module ``General Polynomial Expressions`` =
  