anchor.diff:  open Rexcfnghk.MarkSixParser
   open Rexcfnghk.MarkSixParser.ValidationResult
   open Rexcfnghk.MarkSixParser.MarkSix
  +
  +[<Literal>]
  +let DuplicateErrorMessage = 
  +    "Duplicate mark six number entered"
   
   let readMarkSixNumber = 
       let validateInt32 string =
  
positive.code: 
      stdin.ReadLine >> validateInt32 >=> MarkSixNumber.create
  
  // TODO: Cannot use Set in initial entry because of positioning
  // Add to set to check for duplicates
  let getDrawResultNumbers' () = 
      let duplicateErrorMessage = 
          "Duplicate mark six number entered"
  
      let tryAddToSet acc element =
          let updatedSet = Set.add element acc
          if Set.count updatedSet = Set.count acc
          then duplicateErrorMessage |> ValidationResult.errorFromString
          else updatedSet |> ValidationResult.success
  
      let tryReturnExtraNumber set element =
          if Set.exists ((=) element) set
          then duplicateErrorMessage |> ValidationResult.errorFromString
          else element |> ValidationResult.success
  
      let getDrawResultNumbersImpl acc =
          if Set.count acc = 6
          then acc
          else 
              let addMarkSixNumberToSet = readMarkSixNumber >=> tryAddToSet acc
              ValidationResult.retryable (printfn "%A") addMarkSixNumberToSet
  
      let drawnNumbers = getDrawResultNumbersImpl Set.empty
      let extraNumber = 
          readMarkSixNumber
          >=> tryReturnExtraNumber drawnNumbers
  
negative.code:                 printUsersDrawListImpl newCount t
          printUsersDrawListImpl 0
  
      let usersDrawList = 
          getUsersDrawNumbers' 'Y' [] 0
          |> ValidationResult.traverse MarkSix.toUsersDraw
          |> ValidationResult.extract
  
      printUsersDrawList usersDrawList
      usersDrawList
  
  