anchor.diff:      | Product (l, r) -> Product (simplify l, simplify r)
       | Sum (l, r)     -> Sum (simplify l, simplify r)
       | e -> e
  +
  +let parse (e: string) =
  +    exn
  +
   
   let s = Sum (Number 1, Number 2)
   show s
  
positive.code: 
  let rec simplify e =
      match e with
      | Product (Sum (a, b), Sum (c, d)) ->
          if (a = c) then simplify (Product (a, Sum (b, d)))
          else if (a = d) then simplify (Product (a, Sum (b, c)))
          else if (b = c) then simplify (Product (b, Sum (a, d)))
          else if (b = d) then simplify (Product (b, Sum (a, c)))
  
negative.code: show p
  eval p
  
  let c1 = Sum (Product (Number 2, Number 3), Product (Number 2, Number 4))
  show (simplify c1) = "(2 * (3 + 4))"
  eval c1 = eval (simplify c1)
  