Validation with applicative functors