reprimProgram ::
  FreshName n =>
  MonadFresh m =>
  Program k Core.Prim n a ->
  ExceptT (ReprimError n a) m (Program k X64.Prim n a)
reprimProgram = \case
  Program a tm ->
    Program a <$> reprimTerm tm
reprimProgram ::
  FreshName n =>
  MonadFresh m =>
  Program k Core.Prim n a ->
  ExceptT (ReprimError n a) m (Program k X64.Prim n a)
reprimProgram = \case
  Program a tm ->
    Program a <$> reprimTerm tm
reprimProgram = \case
  Program a tm ->
    Program a <$> reprimTerm tm