///|
/// Exact equivalence to a supplied explicit model. Intended for fixtures and
/// independent algorithm tests. The caller must establish that the adapter
/// implements that reference; this oracle cannot establish it for an unknown SUL.
pub fn Oracle::exact(
  reference : Machine,
  max_pairs~ : Int32 = 1000000,
) -> Oracle raise LensError {
  if max_pairs < 1 {
    raise InvalidArgument("max_pairs must be positive")
  }
  Oracle::new((hypothesis, _) => {
    match distinguish(hypothesis, reference, max_pairs~) {
      Some(difference) => Counterexample(difference.inputs)
      None => NoCounterexample(ExactReference)
    }
  })
}