Basic building blocks of dependent type theory — LessWrong