113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlemodule modreq_type_opt 1.0; 213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlerequire { 413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle type file_t; 513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle class file { read write }; 613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle} 713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindletype mod_global_t; 913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 1013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleoptional { 1113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle require { 1213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle type type_req_t; 1313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle } 1413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle type mod_opt_t; 1513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle allow type_req_t file_t : file { read write }; 1613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle}