123456789101112131415161718192021222324moduleF=Formatletis_safe=trueletfirst_char=FirstChar.OneOf['*';'-']letforce_construct=truetypestate=unitletrechar=Str.regexp(F.sprintf"%s[ \t]*%s[ \t]*%s[%s \t]*$"charcharcharchar)letre_star=re"\\*"letre_dash=re"-"letstartline:stateBlockRule.res=ifStr.string_matchre_starline0||Str.string_matchre_dashline0thenStop{state=();handle_line=`Discard}elseDieletcontinue__=(* There is no [BlockRule.Go] state in [start], i.e. no continue. *)assertfalseletconstruct_()_=Typ.Hr