I noticed that obj.method(m) is often giving an error. The error given on [].methods looks like:
#<TypeError: unrecognized runtime type `{_NSRange=QQ}'>
#<TypeError: unrecognized runtime type `{_NSRange=QQ}'>
#<TypeError: unrecognized runtime type `?'>
#<TypeError: unrecognized runtime type `?'>
#<TypeError: unrecognized runtime type `{_NSRange=QQ}'>
#<TypeError: unrecognized runtime type `{_NSRange=QQ}'>
#<TypeError: unrecognized runtime type `{_NSRange=QQ}'>
#<TypeError: unrecognized runtime type `{_NSRange=QQ}'>
#<TypeError: unrecognized runtime type `{_NSRange=QQ}'>
#<TypeError: unrecognized runtime type `{_NSRange=QQ}'>
#<TypeError: unrecognized runtime type `{_NSRange=QQ}'>
#<TypeError: unrecognized runtime type `{_NSRange=QQ}'>
#<TypeError: unrecognized runtime type `{_NSRange=QQ}'>
#<TypeError: unrecognized runtime type `?'>
#<TypeError: unrecognized runtime type `?'>
#<TypeError: unrecognized runtime type `?'>
#<TypeError: unrecognized runtime type `?'>
#<TypeError: unrecognized runtime type `?'>
#<TypeError: unrecognized runtime type `?'>
#<TypeError: unrecognized runtime type `?'>
#<TypeError: unrecognized runtime type `?'>
#<TypeError: unrecognized runtime type `?'>
#<TypeError: unrecognized runtime type `?'>
#<TypeError: unrecognized runtime type `?'>
#<TypeError: unrecognized runtime type `{_NSRange=QQ}'>
#<TypeError: unrecognized runtime type `{_NSRange=QQ}'>
#<TypeError: unrecognized runtime type `{_NSRange=QQ}'>
#<TypeError: unrecognized runtime type `{_NSRange=QQ}'>
#<TypeError: unrecognized runtime type `{_NSRange=QQ}'>
#<TypeError: unrecognized runtime type `?'>