GENERIC MODULERef (Elem); IMPORT Word; REVEAL T = BRANDED Brand REF Elem.T; PROCEDUREHash (a : T) : Word.T = BEGIN RETURN Elem.Hash(a^) END Hash; PROCEDUREEqual (a, b : T) : BOOLEAN = BEGIN RETURN Elem.Equal(a^, b^) END Equal; PROCEDURENew (READONLY a : Elem.T) : T = VAR res := NEW(T); BEGIN res^ := a; RETURN res END New; PROCEDUREGet (a : T) : Elem.T = BEGIN RETURN a^ END Get; BEGIN END Ref.