anchor.diff:  type IPredicate =
       abstract Invoke<'T> : value:'T -> bool
   
  -/// Type Algebra implementation
  +/// Type Algebra we will be testing our code against
   type TypeAlg =
       | Unit
       | Bool
  
positive.code:     | Tuple3 (t1,t2,t3) -> sprintf "(%s * %s * %s)" (toString t1) (toString t2) (toString t3)
  
  /// Converts a TypeAlg representation to its corresponding System.Type
  let rec toSysType (atype : TypeAlg) : Type =
      match atype with
      | Unit -> typeof<unit>
      | Bool -> typeof<bool>
      | Int32 -> typeof<int>
  
negative.code:     | Tuple3 of TypeAlg * TypeAlg * TypeAlg
  
  /// Type Algebra pretty-printer
  let rec toString (tAlg : TypeAlg) =
      match tAlg with
      | Unit -> "unit"
      | Bool -> "bool"
      | Int32 -> "int"
  