EIP 712 typehashes differ from solidity selectors in that parameters have names and type declarations can be recursive. Please validate that the typehashes are sorted correctly in the recursive case.