package petri_net port type Port() connector type Singleton(Port p) define p end atom type SimplePetriNet() export port Port start1(), start2(), res1(), res2(), sync() place INIT1, INIT2, SYNC1, SYNC2, RES1, RES2, RESOURCE, END1, END2 initial to INIT1, INIT2, RESOURCE on start1 from INIT1 to RES1 on start2 from INIT2 to RES2 on res1 from RES1, RESOURCE to SYNC1, RESOURCE on res2 from RES2, RESOURCE to SYNC2, RESOURCE on sync from SYNC1, SYNC2 to END1, END2 end compound type MyCompoundType() component SimplePetriNet petriNet() connector Singleton start1(petriNet.start1) connector Singleton start2(petriNet.start2) connector Singleton res1(petriNet.res1) connector Singleton res2(petriNet.res2) connector Singleton sync(petriNet.sync) end end