basically, if your filter function returns a `thenable`, we need a way to keep the original value. the FilterResult is for seeing if the filter function's `thenable` returns true or false, and if it returns truthy, add the value to the resulting array. Was the only way I could think of to make this function work recursively, open to any suggestions.