anchor.diff:          }
           g |> Arb.fromGen
   
  +type FourOfAKindWithExtraPoints = 
  +    static member Roll() =
  +        let g = gen {
  +            let! n = Gen.choose (1,6)
  +            let pool = n |> Common.excludeNumber |> Seq.toList
  +            let scoringDice = [1; 5] |> List.filter (fun x -> x <> n) 
  +            let! i = Gen.choose (0, (scoringDice |> Seq.length) - 1)
  +            let oneOrFive = i |> List.nth scoringDice
  +            let! j = Gen.choose (0,4)
  +            let last = j |> List.nth (n |> Common.excludeNumber |> Seq.toList)
  +            let roll = oneOrFive :: last :: (List.init 4 (fun _ -> n))
  +            return n,roll
  +        }
  +        g |> Arb.fromGen
  +
   type ThreeOfAKindWithAnotherThreeOfAKind =
       static member Roll() =
           let g = gen {
  
positive.code:         let expected = 2 * (n |> ZonkKata.Roll.ThreeOfAKindPoints)
          let actual = roll |> ZonkKata.Roll.CalculatePoints
          test <@ expected = actual @>
  
negative.code:             return Common.oneOrFiveRoll()
          }
          g |> Arb.fromGen
  
  type FourOfAKindWithExtraPointsPropertyAttribute () =
      inherit PropertyAttribute (
          Arbitrary = [| typeof<FourOfAKindWithExtraPoints> |])
  
  type FourOfAKindWithNoExtraPointsPropertyAttribute () =
      inherit PropertyAttribute (
  