let find_in_hierarchy service (main, pages) =
let rec aux service i = function
| [] -> raise Not_found
| (_, Site_tree (Main_page s, hsl))::_ when s = service ->
(try
i::aux service 0 hsl
with Not_found -> [i])
| (_, Disabled)::l -> aux service (i+1) l
| (_, Site_tree (_, hsl))::l ->
(try
i::aux service 0 hsl
with Not_found -> aux service (i+1) l)
in
try
match service with
| None -> []
| Some service -> aux service 0 pages
with Not_found -> []