|
|
|
|
|
by anigbrowl
4912 days ago
|
|
So when you need to make a contract with a corporation, who will you make it with? When you want to sue one, who will you sue? The individual officers? How are you going to prove they were responsible? If you sue the CEO because of something his subordinates did, and he dies 6 months later, what would happen to your legal action? The legal fiction of corporate personhood exists for a good reason; it allows parties external to the corporation to transact business with and take action against the corporation without needing to know the individual structure of it. It's called a corporation because corpore is the Latin for body, giving it a distinct legal identity. |
|
Okay, since I'm sensing this is about to become a type theory conversation, let's start with the function definition:
sue :: Person -> Claim -> Person -> Maybe Money
Now you're basically saying that, given the above definition, we have no choice but to have Company implement the Person typeclass. Unfortunately, there is a lot of code already using the Person typeclass for purposes that are absurd when a Corporation is passed. Consider:
valid_for_carpool :: [Person] -> Boolean
So what to do? One option is to send out emails telling our colleagues to be very careful when using the Person typeclass. The other option is to create a new Suable typeclass, and implement it for both corporations and people.
Which one do you prefer?