1234567891011121314151617typederiver=..letall=Hashtbl.create42letregisternamederiver=ifHashtbl.memallnamethenPrintf.ksprintffailwith"Ppx_deriviers.register: %S is already registered"name;Hashtbl.addallnamederiverletlookupname=matchHashtbl.findallnamewith|drv->Somedrv|exceptionNot_found->Noneletderivers()=Hashtbl.fold(funnamedrvacc->(name,drv)::acc)all[]