now accepts fold to any result from a directive

pulled out results as type func result type params, so one can now decide what the directive folds to.