mk_binary : string -> term * term -> term

SYNOPSIS
Constructs an instance of a named monomorphic binary operator.

DESCRIPTION
The call mk_binary s (l,r) constructs a binary application (op l) r where op is the monomorphic constant with name s. Note that it will in general not work if the constant is polymorphic.

FAILURE CONDITIONS
If there is no constant at all with name s, or if the constant is polymorphic and the terms do not match its most general type.

EXAMPLE
This case works fine:
  # mk_binary "+" (`1`,`2`);;
  val it : term = `1 + 2`
but here we hit the monomorphism restriction:
  # mk_binary "=" (`a:A`,`b:A`);;
  val it : term = `a = b`
  # mk_binary "=" (`1`,`2`);;
  Exception: Failure "mk_binary".

SEE ALSO
dest_binary, is_binary, mk_binop.