Encoding_select: fix selection for the "lskept" and "lsinst" sets
lskept: the old selection check required at least one non-variable non-closed type in the lsymbol's signature. This is too permissive, because (list_match : list 'a -> 'b -> 'b) is allowed and will produce an instance for every type in the "inst" set. The new check requires that all freely standing type variables occur under a type constructor elsewhere in the lsymbol's signature. lsinst: accept any monomorphic instance of any polymorphic symbol except equality. The old procedure applied the same restrictions as for the "lskept" set which serve no real purpose for "lsinst".
Showing with 18 additions and 18 deletions