core: split checking of private constructs into own module, and add comments
core: comments to inferencer
core: refactor letrec checker to split out auxilliary checks
core: refactoring letrec checker
core: more refactoring of letrec checker
core: use bidirectional checking with recursive let-bindings
core: fix scoping of letrecs
core: allow mutually recursive let-bindings with no type annotations
core: still require type annots for recursive bindings in Recon mode