also, you aren't parsing the `fn` keyword here, i.e.:

    {_, tok_fn, state} = expect_token(state, :fn, "fn keyword")