txt: ## dist_cpan-DMAESTRO-Seq-Bounded.md
  # NAME
  
  Seq::Bounded
  
  # SYNOPSIS
  
  ```
  use Seq::Bounded;
  
  my $infinite-squares = { 1, 2 ... * }.map(* ** 2);
  
  my $three-digit-squares = ($infinite-squares but Bounded)
      .while(:skip, * < 100)
      .until(* >= 1000);
  
  ```
  
  # DESCRIPTION
  
  This role, when applied to a (possibly infinite) sequence, allows adding bounds conditions based the values of the sequence. This is useful when an infinite Seq is mapped by a function - in such a case, it could be inconvenient to specify the bound in the sequence generator.
  
  Applying this role adds the methods `while` and `until`. An optional adverb `:skip` converts the bound from the end of the Seq to the start.
  
  The role only applies to classes (and objects) of type `Seq` or its subclasses.
  
  # METHODS
  
  ### method while
  
  ```
  method while(
      &cond
  ) returns Seq
  
  ```
  
  while tests the given condition against each member of the sequence and terminates the sequence when the condition is no longer satisfied.
  
  ### method while
  
  ```
  method while(
      &cond,
      :$skip!
  ) returns Seq
  
  ```
  
  with the :skip adverb
  
  ### method until
  
  ```
  method until(
      &cond
  ) returns Seq
  
  ```
  
  until tests the given condition against each member of the sequence and terminates the sequence when the condition is satisfied.
  
  ### method until
  
  ```
  method until(
      &cond,
      :$skip!
  ) returns Seq
  
  ```
  
  with the :skip adverb
  
  # LICENSE
  
  This file is licensed under the same terms as perl itself.
  
  # AUTHOR
  
  Doug Schrag [dmaestro@cpan.org](mailto:dmaestro@cpan.org)
  