step :: TermList f -> Index f a -> Stack f a -> Stack f a
step !_ _ _ | False = undefined
step :: TermList f -> Index f a -> Stack f a -> Stack f a
step !_ _ _ | False = undefined
step !_ _ _ | False = undefined