123456789101112131415161718192021222324open!Coretypet=|Userspace|Kernel|Userspace_and_kernel[@@derivingsexp_of,compare,equal]letcommands_and_docs=[(Userspace_and_kernel,"trace-include-kernel","Trace userspace and the kernel. Requires root.");(Kernel,"trace-kernel-only","Trace the kernel and do not trace userspace. Requires root.")];;letparam=Command.Param.choose_one~if_nothing_chosen:(Default_toUserspace)(List.mapcommands_and_docs~f:(fun(variant,flag,doc)->Command.Param.flagflag(Command.Param.no_arg_somevariant)~doc));;