anchor.diff:  type ErrorMessage = ErrorMessage of string
   
   [<StructuredFormatDisplay("{AsString}")>]
  -type ValidationResult<'T> =
  -    | Success of 'T
  +type ValidationResult<'a> =
  +    | Success of 'a
       | Error of ErrorMessage
       override this.ToString() =
           match this with
  
positive.code: 
      let (>>=) x f = bind f x
  
      let extract<'T> : ValidationResult<'T> -> 'T = doubleMap id (fun (ErrorMessage e) -> invalidOp e)
  
      let (>=>) f g = f >> bind g
  
      let apply fV xV = bind (fun f -> map f xV) fV
  
      let (<*>) = apply
  
  
negative.code: 
      let error = Error
  
      let errorFromString<'a> : string -> ValidationResult<'a> = ErrorMessage >> Error
  
      let doubleMap successHandler errorHandler = function
          | Success x -> successHandler x
  