`recipes` might be the wrong name.  It doesn't mean examples to me though.  I'm open to other names. 

In language design one attempts to achieve a small but powerful core and then describe everything else in those terms.  That way performance improvements on the core propagate outwards to the rest of the code.  To me this is `core.py`.

One advantage is that porting becomes simpler.  For example if we do threading/multiprocessing or PyPy support we should only need to look at `core.py`.  It's advantageous to keep that small if possible.