 
 ! parse-multi-def
 {
-    { "v1" "tok1" "tok2" }
+    { "tok1" "tok2" }
     { "tok1" "tok2" }
 } [
     [
-        { "tok1 tok2 )" } <lexer> [
-            H{ { "v1" t } } clone dup parse-multi-def
-        ] with-lexer
+        { "tok1 tok2 )" } <lexer> [ parse-multi-def ] with-lexer
     ] with-compilation-unit
-    [ keys ] [ locals>> [ name>> ] map ] bi*
+    [ locals>> [ name>> ] map ] [ keys ] bi*
 ] unit-test

    nip values [ name>> ] map
] unit-test

! parse-def
{ "um" { "um" } } [
    [ "um" H{ } clone [ parse-def ] keep ] with-compilation-unit
    [ local>> name>> ] [ keys ] bi*
] unit-test

! parse-local-defs
{ { "tok1" "tok2" } } [
    [

USING: accessors assocs compiler.units kernel lexer locals.backend
locals.parser namespaces parser prettyprint sequences sorting
tools.test vocabs vocabs.parser ;
IN: locals.parser.tests

<<
! ((parse-lambda))
{
    "V{ 99 :> kkk kkk }"
} [
    [
        "locals" use-vocab
        { "99 :> kkk kkk ;" } <lexer> [
            H{ } clone [ \ ; parse-until ] ((parse-lambda))
        ] with-lexer
    ] with-compilation-unit unparse
] unit-test

! (::)
{
    "dobiedoo"
    [ 1 load-locals 1 drop-locals ]
    ( x -- y )
} [
    [
        { "dobiedoo ( x -- y ) ;" } <lexer> [ (::) ] with-lexer
    ] with-compilation-unit
    [ name>> ] 2dip
] unit-test

! parse-def
{ "um" t } [
    [
        "um" parse-def
        local>> name>>
        manifest get qualified-vocabs>> last words>> keys "um" swap member?
    ] with-compilation-unit
] unit-test
>>

! check-local-name
{ "hello" } [
