fails:Module#method_defined? returns true if a public or private method with the given name is defined in self, self's ancestors or one of self's included modules
fails:Module#method_defined? converts the given name to a string using to_str
fails:Module#module_function with specific method names creates duplicates of the given instance methods on the Module object
fails:Module#module_function with specific method names returns the current module
fails:Module#module_function with specific method names makes the instance methods private
fails:Module#module_function with specific method names makes the new Module methods public
fails:Module#module_function with specific method names tries to convert the given names to strings using to_str
fails:Module#module_function with specific method names raises a TypeError when the given names can't be converted to string using to_str
fails:Module#module_function as a toggle (no arguments) in a Module body makes any subsequently defined methods module functions with the normal semantics
fails:Module#module_function as a toggle (no arguments) in a Module body returns the current module
fails:Module#module_function as a toggle (no arguments) in a Module body stops creating module functions if the body encounters another toggle like public/protected/private without arguments