entrytree_map_path_ f (e:et) (l:ll) rrr@(r:rr) | l==r =
    maybe Nothing (\e_ -> Just (e_++et)) ne
    where
        nch = entrytree_map_path_ f (entrytree_children e) ll (0:rrr)
        ne = f e nch (Loc $ reverse rrr)
entrytree_map_path_ f (e:et) (l:ll) rrr@(r:rr) | l==r =
    maybe Nothing (\e_ -> Just (e_++et)) ne
    where
        nch = entrytree_map_path_ f (entrytree_children e) ll (0:rrr)
        ne = f e nch (Loc $ reverse rrr)
entrytree_map_path_ f (e:et) (l:ll) rrr@(r:rr) | l==r =
    maybe Nothing (\e_ -> Just (e_++et)) ne
    where
        nch = entrytree_map_path_ f (entrytree_children e) ll (0:rrr)
        ne = f e nch (Loc $ reverse rrr)