# Pruviloj.Derive.DecEq

Derive implementations of decidable equality.

deriveDecEq : (fn : TTName) -> Elab ()

  Attempt to derive the body of an implementation of decidable
  equality based on an existing type signature.

  The function signature must provide enough information for the
  deriving to occur. It must consist of zero or more non-constraint
  arguments followed by zero or more constraint arguments, followed
  by the two values to compare. The constraint arguments must
  provide sufficient implementations of `DecEq` to decide the equality of
  each constructor field. The final two arguments to the function
  declaration must be the two values that will be compared for
  equality.

  fn

    the name of the function whose type has been declared