Fixed termination problems (agda dislikes when recursing on return of nullary function)
Let exprepessions for clarity