blob: d13953f8c0ff495973fcbb3d08cf69a197914269 [file] [log] [blame]
Notes from meeting
------------------
Meeting at Dropbox. Attendees: Guido, Jukka, Jim Baker, Jeremy Siek,
Michael Vitousek (student of Jeremy's).
- Could have a few examples in Abstract.
- Discussion of function types, e.g. keyword parameters. Observation
that what the type checker can represent may be more than what the
syntax supports. Jukka says in practice callbacks rarely if ever
are called with callbacks.
- Any reason you use format() in the first example? (It is worthy of
a very custom checker all by itself.)
- Let's not mention the 'types' module much, nor use it in examples.
Its types are too concrete for most practical purposes.
E.g. types.FunctionType does not include built-in types nor bound
methods, but those rarely pose problems.
- The early function/callable examples don't specify the signature.
It would be good to fill in the bodies of the example functions.
- Discussion of Jython, mostly java.util.List. Jim wants to generate
mypy stubs from .class files and then run standard mypy; he wants
java.util.List to be compatible with typing.List.
- We want Set[Employee] to actually create a new class object that
knows it is a Set of Employees (not just Set). However
Set[Employee]() should just return an empty concrete set,
i.e. set().
- Problems with the filter() example -- how does it construct an
instance of Y?
- Discussion about typevar('T', values=(alt1, alt2)) vs. Var('T',
base=...). Jeremy doesn't like base= because it reeks of
subclassing too much. Note that AnyStr is very different from
Union[str, bytes].
- Jython wants to use type hints for code generation and doesn't want
to change its parser to retain #type: comments. But List[int]() is
ugly and slows down execution. No clear solution; maybe Jython's
type inferencing can infer the type of p in cases like this::
def primes(n: int) -> List[int]:
p = []
...fill p with n primes...
return p