Support type annotations.

Closes #138. 
Return a new instance?  Mutable things are unhappy