%---------------------------------------------------------------------------% % vim: ts=4 sw=4 et ft=mercury %---------------------------------------------------------------------------% % % Type definitions for partial_implied_mode.m. :- module partial_implied_mode2. :- interface. :- import_module list. :- import_module maybe. :- import_module pair. :- type pin. :- type quantity_key. :- type measure == int. :- type tbs == int. :- type physic_quantity ---> physic_quantity(pin, list(quantity_key), physic_nature). :- type physic_nature ---> direct ; absol(maybe(measure), maybe(tbs)) ; diff(pin, maybe(pair(quantity_key, quantity_key)), maybe(measure), maybe(tbs)). :- type port_name_ref == int. :- type master_port ---> port_name_ref(port_name_ref) ; anonymous_master_port(int). :- type instance_path == list(int). :- type component_key ---> component(instance_path). :- type net_path == list(int). :- type net_key ---> anonymous_net(int) ; named_net(net_path). :- type pin ---> net_pin(net_key) ; component_pin(component_key, master_port). :- type quantity_key == int.