diff --git a/examples/base64_sem1.c b/examples/base64_sem1.c
index 1c318e3c3d514340a6c8c656e51a7087148ea540..80743524556aab4da1aa4ebb3dd0f484807a9a8c 100644
--- a/examples/base64_sem1.c
+++ b/examples/base64_sem1.c
@@ -56,9 +56,7 @@ H_ACT_APPLY(act_index0, h_act_index, 0);
 // General-form action to turn a block of base64 digits into bytes.
 const HParsedToken *act_base64_n(int n, const HParseResult *p)
 {
-    HParsedToken *res = h_arena_malloc(p->arena, sizeof(HParsedToken));
-    res->token_type = TT_SEQUENCE;
-    res->seq = h_carray_new_sized(p->arena, n);
+    HParsedToken *res = H_MAKE_SEQN(n);
 
     HParsedToken **digits = h_seq_elements(p->ast);