Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Source file schema.ml
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138openSchematicmoduleLbl=structmoduleM2l=Label(structletl="m2l"end)moduleDeps=Label(structletl="deps"end)moduleNamespace=Label(structletl="namespace"end)typem2l=M2l.ttypedeps=Deps.ttypenamespace=Namespace.tendletversion={Version.major=0;minor=11;patch=0}letm2l={Schematic.Ext.title="codept/m2l/0.11.0";description="module level ocaml file skeleton";version;label=Lbl.M2l.l;inner=M2l.sch}letnamespace={Schematic.Ext.title="codept/namespace/0.11.0";description="namespaced compilation units";version;label=Lbl.Namespace.l;inner=Module.Namespace.sch}moduleModule=Label(structletl="module"end)moduleMl=Label(structletl="ml"end)moduleMli=Label(structletl="mli"end)letpath:_s=Namespaced.schtypep=Namespaced.ttypelocal_association={path:p;ml:stringoption;mli:stringoption}letraw_assoc=Obj[Req,Module.l,path<?>"Toplevel module";Opt,Ml.l,String<?>"Implementation (.ml) file";Opt,Mli.l,String<?>"Interface (.mli) file"]<?>"This type keeps track of which implementation file (.ml) \
and interface file (.mli) provided a toplevel module"letlocal_association=customraw_assoc(funr->[Module.l$=r.path;Ml.l$=?r.ml;Mli.l$=?r.mli])Record.(fun[_,path;_,ml;_,mli]->{path;ml;mli})typelibrary_module={path:p;lib:p}moduleLib=Label(structletl="lib"end)moduleR=Schematic.Recordletlib=custom(Obj[Req,Module.l,path;Req,Lib.l,path]<?>"Library dependency: module path followed by the library path")(fun(r:library_module)->[Module.l$=r.path;Lib.l$=r.lib])(letopenRinfun[_,path;_,lib]->{path;lib})moduleLocal=Label(structletl="local"end)moduleUnknown=Label(structletl="unknown"end)moduleDeps=Label(structletl="deps"end)moduleFile=Label(structletl="file"end)typeunit={file:string;deps:plist}letraw_unit=Obj[Req,File.l,String<?>"File name";Opt,Deps.l,Arraypath<?>"list of dependencies"]letunit=lete:_list=[]inlet($=$)xl=ifl=L.[]thenx$=?Noneelsex$=?Somelincustomraw_unit(fund->[File.l$=d.file;Deps.l$=$d.deps])(letopenRinfun[_,file;_,deps]->{file;deps=Option.defaultedeps})moduleDependencies=Label(structletl="dependencies"end)moduleAtlas=Label(structletl="atlas"end)typedeps={dependencies:unitlist;local:local_associationlist;library:library_modulelist;unknown:plist;}letdeps=Obj[Req,Dependencies.l,Arrayunit<?>"Infered dependencies";Opt,Local.l,Arraylocal_association<?>"Modules provided by local files";Opt,Lib.l,Arraylib<?>"Modules provided by libraries";Opt,Unknown.l,Arraypath<?>"Unknown modules";]letdeps=letlistx=Option.default([]:_list)xinlet($=$)xl=ifl=L.[]thenx$=?Noneelsex$=?SomelinletopenRecordincustomdeps(fun{dependencies;local;library;unknown}->[Dependencies.l$=dependencies;Local.l$=$local;Lib.l$=$library;Unknown.l$=$unknown])(fun[_,dependencies;_,local;_,lib;_,u]->{dependencies;local=listlocal;library=listlib;unknown=listu})letx={Ext.title="codept.0.11.0/deps";description="dependencies and module-to-files mapping of ocaml project";label=Lbl.Deps.l;version;inner=deps;}letschema=x