%-----------------------------------------------------------------------------% :- module rdfStore. :- interface. :- type rdfStore__open(OpenStore). :- inst rdfStore.inst_open(S) ---> rdfStore__open(S). :- type rdfStore__transact(TransactStore). :- inst rdfStore.inst_transact(S) ---> rdfStore__transact(S). :- type state_of_store(Store) ---> astore(Store) ; open(rdfStore.open(Store)) ; trans(rdfStore.open(rdfStore.transact(Store))) . :- inst readable ---> open(ground); trans(ground). % XXX when these are not in the interface, then the output variable of % get_od_read has unqualified functors in its inst. % When these are in the interface then the functors are correctly % module qualified. % % :- type rdfStore__open(OpenStore) % ---> rdfStore__open(OpenStore). % % :- type rdfStore__transact(TransactStore) % ---> rdfStore__transact(TransactStore). :- func inst_store_open(Store::in(I)) = (rdfStore__open(Store)::out(rdfStore.inst_open(I))) is det. :- func inst_open_store(rdfStore__open(Store)::in(rdfStore.inst_open(I))) = (Store::out(I)) is det. %-----------------------------------------------------------------------------% %-----------------------------------------------------------------------------% :- implementation. :- type rdfStore__open(OpenStore) ---> rdfStore__open(OpenStore). :- type rdfStore__transact(TransactStore) ---> rdfStore__transact(TransactStore). inst_store_open(Store) = (rdfStore__open(Store)). inst_open_store(rdfStore__open(Store)) = (Store). %-----------------------------------------------------------------------------% % vim: ft=mercury ts=8 sw=4 et wm=0 tw=0