def createName(string: String): Try[String with Name] = { val regExp = "^[a-zA-Z_][a-zA-Z0-9_]*$".r regExp .findPrefixMatchOf(string) .fold[Try[String with Name]](Failure(new Exception(s"$string is not a valid field name")))( _ => Success(string.asInstanceOf[String with Name]) ) }