Oh wow, didn't realize it's so complicated. Then how about renaming `ExtractorType`, so that it doesn't trick people into it being an ultimate authority? Something like `HasUnapplyMember`. Also a comment here most definitely will help.