Wouter Swierstra <wss at Cs.Nott.AC.UK> writes: > * Bernie Pope - Getting a Fix from the Right Fold i ended up with this one: dwBool predicate l = (foldr combine (\_ -> []) l) True where combine e fl beg = if beg && predicate e then fl True else e : fl False higher-order, like solutions 3 & 4, but simpler IMO :p