fails:Kernel#open when given an object that responds to to_open calls #to_path to covert the argument to a String before calling #to_str
fails:Kernel#open when given an object that responds to to_open returns the value from #to_open
fails:Kernel#open when given an object that responds to to_open passes its arguments onto #to_open
fails:Kernel#open when given an object that responds to to_open passes the return value from #to_open to a block
