Dependently typed language