@@ -310,6 +310,10 @@ apex
310310 %+ cook
311311 |= =function [%function function]
312312 parse-function
313+ ::
314+ %+ cook
315+ |= =local-function [%local-function local-function]
316+ parse-local-function
313317 ==
314318++ parse-for-range
315319 %^ tnee %for-range for-range
@@ -355,6 +359,20 @@ apex
355359 ws
356360 parse-funcbody
357361 ==
362+++ parse-local-function
363+ %^ tnee %parse-local-function local-function
364+ %+ cook
365+ |= [* * * * =name * body=funcbody]
366+ [name body]
367+ ;~ plug
368+ (jest 'local')
369+ wss
370+ (jest 'function')
371+ wss
372+ parse-name
373+ ws
374+ parse-funcbody
375+ ==
358376++ parse-funcname
359377 %^ tnee %parse-funcname funcname
360378 ;~ plug
@@ -510,14 +528,13 @@ apex
510528 ==
511529++ parse-blok
512530 %^ tnee %parse-blok blok
513− ;~ plug
514− (most ws parse-stat)
515− ::
516− %- punt
517− ;~ pfix
518− wss
519− parse-ret
520− ==
531+ ;< stats=(list stat) bind (more ws parse-stat)
532+ %+ cook
533+ |= ret=(unit ret) [stats ret]
534+ %- punt
535+ ;~ pfix
536+ ?~ stats (easy ~) wss
537+ parse-ret
521538 ==
522539++ parse-ret
523540 %^ tnee %parse-ret ret