CA Vehicle Code: '"Person" includes a natural person, firm, copartnership, association, limited liability company, or corporation.' (http://dmv.ca.gov/pubs/vctop/d01/vc470.htm)
Pretty reasonable argument in the abstract.
But I don't think that the Articles of Incorporation should be considered a physical manifestation of that corporation, so I don't see how you could claim that the corporation was "in the vehicle".
I'm not sure as I haven't studied it, but I suspect the corporation 'lives' at the address for service; alternatively, in a filing cabinet in the CA Secretary of State's office ;-) It certainly doesn't travel around with its papers, any more than you are your passport.
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?
But I seriously doubt that this method of getting the issue before a court will work. There are way too many legasl dodges that can be taken before it gets to that point. To really get it to SCOTUS, one would need to have a case where far more substantial harm is done and where the doctrine of corporate personhood plays a key role in the harm. I don't see that here; it's too obviously a ploy and too easy to label as frivolous.
Legal person doesn't have all the same rights, for example I don't think corporation can marry, and thus have a right to not testify against it's partner. (I believe married people can plead 5'th in order to not testify against their spouse.)
Please don't take legal advice from this post, it could be utterly wrong.
The obvious solution is to factor out a base class, LegalPerson, with some but not all of the behaviors of the existing Person class. Then derive a separate Company class from LegalPerson. All the stuff we don't want corporations to have, we leave in the existing Person class, so Company doesn't have it.
create a new Suable typeclass
I would view "Suable" as an interface implemented by LegalPerson, and inherited by Person and Company. LegalPerson obviously has to implement lots of interfaces. :-)
A couple comments:
- the name LegalEntity feels better to me. (I think it's less likely to be confusing to the lawgrammers who'll be maintaing the code).
- Once we have LegalEntity in place, we should consider discarding the Suable typeclass -- it looks to me like LegalEntity perfectly describes what we're looking for.
There's still a lot of refactoring to be done (I still can't believe the CA Vehicle Code considers a person "a natural person, firm, copartnership, association, limited liability company, or corporation."), but now that the types have been cleared up we have a good foundation to move towards.
Things we should consider going forwards:
- Will the constitution refer to Person, or to LegalEntity? ("new Person() == new Person()" has a nice ring to it if you ask me)
- Why can't all LegalEntities be acted upon in the same way? (Some Legal entities can be put in jail for instance). Is there a type we are missing?
Well, of course we'll need to use multiple inheritance. :-)
we should consider discarding the Suable typeclass
I would recommend keeping it as an interface definition, to make clear that it is a logically distinct thing; LegalEntity would just implement the interface.
Will the constitution refer to Person, or to LegalEntity?
Depends on the context, I would think. Sounds like we'll need plenty of coders to make this work... :-)
Why can't all LegalEntities be acted upon in the same way?
Obviously we haven't defined all the relevant interfaces and subclasses :-). The one you're looking for here is Jailable, which evidently would be implemented by Person but not Company, and so would not be implemented in the LegalEntity base class.
Obvious next question: what language do we start the implementation in? I vote for Python. Anyone for starting a github project?
I would not begin with your definition above; I just gave a few obvious examples of why corporate personhood makes legal disputes an awful lot simpler for everyone involved, to the point where most people take it for granted. Corporations are the solution to legal problems involving collective action. Their history is intertwined with the development of modern democracy, as groups became a viable alternative to monarchs. If you want to understand the origin of corporations in common law systems, you may as well begin with the City of London Corporation: http://en.wikipedia.org/wiki/City_of_London_Corporation