------------------------------------------------------------------------

-- | NOTE: The two 'Term' arguments must have the same type.
matchTerm ::
  SharedContext   {- ^ context for constructing SAW terms    -} ->
  JVMCrucibleContext {- ^ context for interacting with Crucible -} ->
  W4.ProgramLoc ->
  PrePost                                                       ->
  Term            {- ^ exported concrete term                -} ->
  Term            {- ^ expected specification term           -} ->
  OverrideMatcher CJ.JVM w ()

matchTerm _ _ _ _ real expect | real == expect = return ()
matchTerm ::
  SharedContext   {- ^ context for constructing SAW terms    -} ->
  JVMCrucibleContext {- ^ context for interacting with Crucible -} ->
  W4.ProgramLoc ->
  PrePost                                                       ->
  Term            {- ^ exported concrete term                -} ->
  Term            {- ^ expected specification term           -} ->
  OverrideMatcher CJ.JVM w ()
matchTerm _ _ _ _ real expect | real == expect = return ()
matchTerm _ _ _ _ real expect | real == expect = return ()