1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162typebasic_color=|Black|Red|Green|Yellow|Blue|Magenta|Cyan|Whitetypeintensity=|Standard|Hightypecolor=|Codeof(intensity*basic_color)|RGBof(int*int*int)typestyle=|No|Bold|Faint|Italic|Underline|FGofcolor|BGofcolortypestyle_tag=|Openofstyle|CloseofstylemoduletypeSemTagSig=sigtypetagvaltags:(string*tag*stylelist)listendmoduletypeSemTagHandlerSig=sigtypesemtagvaltag_to_name:semtag->stringendmoduleMake_Handler(S:SemTagSig)=structtypesemtag=S.taglettag_to_nametag=letname,_,_=List.find(fun(_,t,_)->tag=t)S.tagsinnameendmoduletypeActualRendererSig=sigvalrender:stylelist->string->string(** [render style s] returns a string rendering the style
[style] *)valrender_mark:style_taglist->string(** [render_mark att s] returns a string rendering the sequence (in
the same order) of attributes [att] *)end