12345678910111213141516171819202122232425262728(** This is a module used to share functionality needed by modules that
contain higher-kinded type behavior.
HKT = Higher-Kinded Types *)moduleHKT=structtypetexternalinj:'a->'b="%identity"externalprj:'a->'b="%identity"endmoduleMake_sched(T:sigtype+'atend)=structtype+'as='aT.tincludeHKTendmoduleMake_store(T:sigtype('k,'v)tend)=structtype('a,'b)s=('a,'b)T.tincludeHKTend