Wrap evaluator in data type and make Applicative