object Validation { type Field = String type Code = String type Error = (Field, Code) type ValidationResult[A] = Validated[Error, A] type Validation[A] = Applicative[Nested[Task, ValidationResult, A]] }