[GHC] #14152: Float exit paths out of recursive functions