:- module getopt.
:- interface.
:- import_module bool.
:- import_module char.
:- import_module list.
:- import_module map.
:- import_module maybe.
:- import_module set.
:- type option_data.
:- type special_data.
:- type maybe_option_table(OptionType).
:- type option_ops(OptionType).
:- type option_ops_track(OptionType).
:- type option_table(OptionType).
:- inst (option_ops) == bound(option_ops((pred(in, out) is semidet), (pred(in, out) is semidet), (pred(out, out) is nondet)) ; option_ops((pred(in, out) is semidet), (pred(in, out) is semidet), (pred(out, out) is nondet), (pred(in, in, in, out) is semidet)) ; option_ops_multi((pred(in, out) is semidet), (pred(in, out) is semidet), (pred(out, out) is multi)) ; option_ops_multi((pred(in, out) is semidet), (pred(in, out) is semidet), (pred(out, out) is multi), (pred(in, in, in, out) is semidet))).
:- inst (option_ops_track) == bound(option_ops_track((pred(in, out) is semidet), (pred(in, out) is semidet), (pred(in, in, in, out, out) is semidet))).
