You can probably come up with better names than `key` and `obj` and better types than `id`.
Style: `^(`