clarify comment in example
clean up the C library wrapping tutorial a bit and add a section on callbacks
rst fix
extend test case
slight code simplification
clean up and improve static type declarations in FlowControl.py a bit
declare some classes in FlowControl.py final to speed up internal method calls
minor tweak
disable incorrect optimisation for set.discard()
add some more typing in FlowControl.py
simple optimisation that statically maps keyword arguments to positional arguments when called signature is known
fix error test after enabling keyword arguments in simple C functions
fix compiler crash
fix error test after enabling keyword arguments in simple C functions
move major part of SimplifyCalls transform into type analysis in GeneralCallNode
fix safety coercion after call node optimisation
match simple keyword arguments that are passed into cdef function calls out-of-order
refactor analyse_types() and friends to work more like a transform by returning the node or a replacement
reimplement SimplifyCalls transform in-place in GeneralCallNode.analyse_types()
Fully initialize allocated memory.

__pyx_CyFunctionObject.defaults must be fully zeroed or a segfault or
memory corruption may occur if the object is visited by the garbage
collector before defaults is later populated. Uninitialized memory is
cast to PyObject* with undefined results:

  static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
  {
      ...
      if (m->defaults) {
          PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
          int i;
          for (i = 0; i < m->defaults_pyobjects; i++)
              Py_VISIT(pydefaults[i]);
                       ^^^^^^^^^^^^^