crunch' s@(x:xs) n m r = if x <= value m then crunch' xs (n - 1) m (r ++ [x])
                         else crunch' (r ++ s) (count (succ m)) (succ m) []
crunch' s@(x:xs) n m r = if x <= value m then crunch' xs (n - 1) m (r ++ [x])
                         else crunch' (r ++ s) (count (succ m)) (succ m) []
crunch' s@(x:xs) n m r = if x <= value m then crunch' xs (n - 1) m (r ++ [x])
                         else crunch' (r ++ s) (count (succ m)) (succ m) []