Any method written using @PolySignature conceptually has two versions: one in which
every instance of @PolySignature String has been replaced by @Signature String,
and one in which every instance of @PolySignature String has been replaced by String.