This adds static support for structural subtyping. Previous discussion is here python/typing#11 Fixes #222