bidirectional type theory with hints
Need to think before going on.