@article{oai:ipsj.ixsq.nii.ac.jp:00218756, author = {Keigo, Imai and Julien, Lange and Rumyana, Neykova and Keigo, Imai and Julien, Lange and Rumyana, Neykova}, issue = {3}, journal = {情報処理学会論文誌プログラミング(PRO)}, month = {Jul}, note = {This presentation introduces the design and implementation of kmclib: an OCaml library that supports the development of correct message-passing programs. The development workflow in kmclib utilises type inference and PreProcessor eXtension (PPX) in OCaml. The kmclib primitives allow the vanilla OCaml typechecker to infer the communication structure of a program. The preprocessor for kmclib is typed: it exploits OCaml's compilerlib to extract session types and verify their compatibility (k-MC). Well-typed programs, written with kmclib, do not lead to communication errors and cannot get stuck., This presentation introduces the design and implementation of kmclib: an OCaml library that supports the development of correct message-passing programs. The development workflow in kmclib utilises type inference and PreProcessor eXtension (PPX) in OCaml. The kmclib primitives allow the vanilla OCaml typechecker to infer the communication structure of a program. The preprocessor for kmclib is typed: it exploits OCaml's compilerlib to extract session types and verify their compatibility (k-MC). Well-typed programs, written with kmclib, do not lead to communication errors and cannot get stuck.}, pages = {2--2}, title = {Verifying Session-Typed Concurrent Programs Using Typed PPX in OCaml}, volume = {15}, year = {2022} }