testPatternUsing testEx (L1.L1PatternAs ss label pattern) = do
  lambdaScoped <- L1.L1ScopedID ss <$> desugarTmpName
  subPatternTest <- testPatternUsing (L1.L1ExBoundVariable ss lambdaScoped) pattern
  return $ L1.L1ExIsLabel ss label testEx
testPatternUsing testEx (L1.L1PatternAs ss label pattern) = do
  lambdaScoped <- L1.L1ScopedID ss <$> desugarTmpName
  subPatternTest <- testPatternUsing (L1.L1ExBoundVariable ss lambdaScoped) pattern
  return $ L1.L1ExIsLabel ss label testEx
testPatternUsing testEx (L1.L1PatternAs ss label pattern) = do
  lambdaScoped <- L1.L1ScopedID ss <$> desugarTmpName
  subPatternTest <- testPatternUsing (L1.L1ExBoundVariable ss lambdaScoped) pattern
  return $ L1.L1ExIsLabel ss label testEx