................................................................................ use>\ ? let company=Set{ Sequence{'Facebook', 'MenloPark', 'CA','Mark' }, Sequence{'Google', 'MountainView','CA','Sundar'}, Sequence{'Microsoft','Redmond', 'WA','Bill' } } in company . Set{Sequence{'Facebook','MenloPark','CA','Mark'}, Sequence{'Google','MountainView','CA','Sundar'}, Sequence{'Microsoft','Redmond','WA','Bill'}} : Set(Sequence(String)) use>\ ? let company=Set{ Sequence{'Facebook', 'MenloPark', 'CA','Mark' }, Sequence{'Google', 'MountainView','CA','Sundar'}, Sequence{'Microsoft','Redmond', 'WA','Bill' } } in company->select(C|C->at(3)='CA')->collect(C|C->at(4)) . Bag{'Mark','Sundar'} : Bag(String) use> ?Set{'A','B'}->product(Set{6,7}) Set{Tuple{first='A',second=6}, Tuple{first='A',second=7}, Tuple{first='B',second=6}, Tuple{first='B',second=7}} : Set(Tuple(first:String,second:Integer)) use> \ ? let company=Set{ Sequence{'Facebook', 'MenloPark', 'CA','Mark' }, Sequence{'Google', 'MountainView','CA','Sundar'}, Sequence{'Microsoft','Redmond', 'WA','Bill' } } in company->product(company) . Set{Tuple{first=Sequence{'Facebook','MenloPark','CA','Mark'}, second=Sequence{'Facebook','MenloPark','CA','Mark'}}, Tuple{first=Sequence{'Facebook','MenloPark','CA','Mark'}, second=Sequence{'Google','MountainView','CA','Sundar'}}, ... Tuple{first=Sequence{'Microsoft','Redmond','WA','Bill'}, second=Sequence{'Google','MountainView','CA','Sundar'}}, Tuple{first=Sequence{'Microsoft','Redmond','WA','Bill'}, second=Sequence{'Microsoft','Redmond','WA','Bill'}}} : Set(Tuple(first:Sequence(String),second:Sequence(String))) use> \ ? let company=Set{ Sequence{'Facebook', 'MenloPark', 'CA','Mark' }, Sequence{'Google', 'MountainView','CA','Sundar'}, Sequence{'Microsoft','Redmond', 'WA','Bill' } } in company->product(company)->size() . 9 : Integer use> \ ? let company=Set{ Sequence{'Facebook', 'MenloPark', 'CA','Mark' }, Sequence{'Google', 'MountainView','CA','Sundar'}, Sequence{'Microsoft','Redmond', 'WA','Bill' } } in company->product(company)->select(T|T.first->at(3)=T.second->at(3) and T.first->at(4)at(4))-> collect(T|Sequence{T.first->at(4),T.second->at(4)}) . Bag{'Mark','Sundar'} : Bag(String) ........................................................................