(* HTML5 tree builder insertion modes *) type t = | Initial | Before_html | Before_head | In_head | In_head_noscript | After_head | In_body | Text | In_table | In_table_text | In_caption | In_column_group | In_table_body | In_row | In_cell | In_select | In_select_in_table | In_template | After_body | In_frameset | After_frameset | After_after_body | After_after_frameset let to_string = function | Initial -> "initial" | Before_html -> "before html" | Before_head -> "before head" | In_head -> "in head" | In_head_noscript -> "in head noscript" | After_head -> "after head" | In_body -> "in body" | Text -> "text" | In_table -> "in table" | In_table_text -> "in table text" | In_caption -> "in caption" | In_column_group -> "in column group" | In_table_body -> "in table body" | In_row -> "in row" | In_cell -> "in cell" | In_select -> "in select" | In_select_in_table -> "in select in table" | In_template -> "in template" | After_body -> "after body" | In_frameset -> "in frameset" | After_frameset -> "after frameset" | After_after_body -> "after after body" | After_after_frameset -> "after after frameset"