Filter package:greskell

WalkType for filtering steps. A filtering step is a step that does filtering only. It takes input and emits some of them without any modification, reordering, traversal actions, or side-effects. Filtering decision must be solely based on each element. A Walk w is Filter type iff:
(gSideEffect w == gIdentity) AND (gFilter w == w)
If Walks w1 and w2 are Filter type, then
gAnd [w1, w2] == w1 >>> w2 == w2 >>> w1
.filter step that takes a traversal.