Next: parsing_utils, Previous: ops, Up: Top [Contents]
%--------------------------------------------------% % vim: ft=mercury ts=4 sw=4 et %--------------------------------------------------% % Copyright (C) 1994-2006 The University of Melbourne. % Copyright (C) 2014-2015, 2017-2018 The Mercury team. % This file is distributed under the terms specified in COPYING.LIB. %--------------------------------------------------% % % File: pair.m. % Main author: fjh. % Stability: high. % % The "pair" type. Useful for many purposes. % %--------------------------------------------------% %--------------------------------------------------% :- module pair. :- interface. :- type pair(T1, T2) ---> (T1 - T2). :- type pair(T) == pair(T, T). :- inst pair(I1, I2) for pair/2 ---> (I1 - I2). :- inst pair(I) == pair(I, I). % Return the first element of the pair. % :- func fst(pair(X, Y)) = X. :- pred fst(pair(X, Y)::in, X::out) is det. % Return the second element of the pair. % :- func snd(pair(X, Y)) = Y. :- pred snd(pair(X, Y)::in, Y::out) is det. :- func pair(T1, T2) = pair(T1, T2). %--------------------------------------------------% %--------------------------------------------------%