The second type parameter G embeds the specific InterfaceGuard type
into the __getInterfaceGuard__ method's return type. This enables
GuardedMethods to extract guard-inferred method signatures
from a Guarded exo object. When no guard is provided (unguarded
overloads), G defaults to a generic InterfaceGuard keyed by M.
The second type parameter
Gembeds the specific InterfaceGuard type into the__getInterfaceGuard__method's return type. This enables GuardedMethods to extract guard-inferred method signatures from a Guarded exo object. When no guard is provided (unguarded overloads),Gdefaults to a generic InterfaceGuard keyed by M.