translateExpression scope _ nsid (L1.L1ExCase ss expr (Left values)) =
  L2.L2ExCase ss
    <$> translateExpression scope ss nsid expr
    <*> mapM (\(l, cex) ->
               (,)
                 <$> translateLabelOnly "case label" scope ss nsid l
                 <*> translateExpression scope ss nsid cex) values
translateExpression scope _ nsid (L1.L1ExCase ss expr (Left values)) =
  L2.L2ExCase ss
    <$> translateExpression scope ss nsid expr
    <*> mapM (\(l, cex) ->
               (,)
                 <$> translateLabelOnly "case label" scope ss nsid l
                 <*> translateExpression scope ss nsid cex) values
translateExpression scope _ nsid (L1.L1ExCase ss expr (Left values)) =
  L2.L2ExCase ss
    <$> translateExpression scope ss nsid expr
    <*> mapM (\(l, cex) ->
               (,)
                 <$> translateLabelOnly "case label" scope ss nsid l
                 <*> translateExpression scope ss nsid cex) values