let is_in_lineage parent child = let rec aux children = List.mem child children || auxaux children and auxaux = function | [] -> false | { children = c } :: tl -> aux c || auxaux tl in aux (get_children parent)