anchor.diff:      printRow row
       printfn ""
   
  -    
  -type group = int list
  -type groupsIntermediate = { FinishedGroups : group list; CurrentGroup : group}
  -type AxisResult = Unknown | Pass | Fail 
  -
  -let getGroups (axis: int[]) =
  +let getGroups (axis) =
     foldi (fun index acc elem -> 
       match elem with
  -    | 0 -> match List.length acc.CurrentGroup with
  -            | 0 -> acc
  -            | _ -> {acc with FinishedGroups = acc.CurrentGroup :: acc.FinishedGroups; CurrentGroup = []}
  +    | CellResult.Empty -> match List.length acc.CurrentGroup with
  +                            | 0 -> acc
  +                            | _ -> {acc with FinishedGroups = acc.CurrentGroup :: acc.FinishedGroups; CurrentGroup = []}
       | _ -> {acc with CurrentGroup = index :: acc.CurrentGroup}
       ) {FinishedGroups = []; CurrentGroup = []} axis
         |> fun acc -> match List.length acc.CurrentGroup with
  
positive.code:     | Unknown -> printf "?  "
      printRow row
      printfn ""
      
  [<EntryPoint>]
  let main argv =
    // printGrid Puzzle.initialGrid
    
    printResultGrid Puzzle.initialGrid Puzzle.rowTests Puzzle.colTests
    0 // return an integer exit code
  
negative.code:     
    | _ -> Unknown
  
  let printResultGrid (grid) (rowTests : int list list) (columnTests : int list list) =
    let maxY = (Array2D.length1 grid) - 1
  
    let rowResults = List.map2 testAxis (rows grid) rowTests
    let columnResults = List.map2 testAxis (columns grid) columnTests
    
  