filter promotion

In a generate and test algorithm, combining part of the filter with the generator in order to reduce the number of potential solutions generated. A trivial example:

	filter (< 100) [1..1000]  ==>  [1..99]

where [1..n] generates the list of integers from 1 to n. Here the filter has been combined completely with the generator. This is an example of fusion.