Dependently Typed Multi-Stage Programming, Revisited