1--  { dg-do compile }
2
3with Ada.Containers.Formal_Hashed_Sets;
4
5procedure Formal_Containers is
6   type T is new Integer;
7
8   function Eq (X : T; Y : T) return Boolean;
9
10   function Hash (X : T) return Ada.Containers.Hash_Type is (0);
11
12   package TSet is new Ada.Containers.Formal_Hashed_Sets
13     (Element_Type        => T,
14      Hash                => Hash,
15      Equivalent_Elements => Eq);
16
17   S : Tset.Set := TSet.Empty_Set;
18
19   function Eq (X : T; Y : T) return Boolean is
20   begin
21      return TSet.Contains (S, X) or TSet.Contains (S, Y);
22   end Eq;
23begin null; end Formal_Containers;
24