1. 2
  1.  

  2. 2

    One thing that concerns me about the approach of adding a type system to an existing language is that one must provide (and maintain!) a package which vends annotations for all core and standard library functions. Otherwise, every value which originates from the original packages is untyped, which either defeats the purpose of the overlaid type system completely, or else requires the developer to annotate all values he gets from across a library boundary, which is tedious and error-prone.