diff --git a/src/parsers/action.c b/src/parsers/action.c
index f708881cdc980023b1f0fb81e821ec7678507795..12ec036f144874ea944e647444a976e76a81b764 100644
--- a/src/parsers/action.c
+++ b/src/parsers/action.c
@@ -31,6 +31,7 @@ static HCFChoice* desugar_action(HAllocator *mm__, void *env) {
   ret->seq[0] = seq;
   ret->seq[1] = NULL;
   ret->action = a->action;
+  ret->reshape = h_act_first;
   return ret;
 }
 
diff --git a/src/parsers/choice.c b/src/parsers/choice.c
index 9a186252b008f9b9de86f57804277c98080e7ccc..30cc725b051e836ba1d48508a506ea89e22cbb60 100644
--- a/src/parsers/choice.c
+++ b/src/parsers/choice.c
@@ -51,6 +51,7 @@ static HCFChoice* desugar_choice(HAllocator *mm__, void *env) {
     ret->seq[i]->items[1] = NULL;
   }
   ret->seq[s->len] = NULL;
+  ret->reshape = h_act_first;
   return ret;
 }