anchor.diff:          pandigitalsDecreasing
           |> Seq.find isConcatenatedProduct
   
  +module Problem39 =
  +    let triangles = Triangles.pythagoreanTriplesWithSumBelow 1001
  +
  +    let answer =
  +        triangles
  +        |> Seq.groupBy (fun (a, b, c) -> a + b + c)
  +        |> Seq.maxBy (fun (key, seq) -> seq |> Seq.length)
  +        |> fst
  +
  +module Problem40 =
  +    let nextDigit (cur, (curString : string)) =
  +        let curDigit = int curString.[0..0]
  +        let newState =
  +            if curString.Length = 1 then
  +                (cur + 1, string (cur + 1))
  +            else
  +                (cur, curString.[1..])
  +
  +        Some(curDigit, newState) 
  +
  +    let digitSeq = Seq.unfold nextDigit (1, "1")
  +
  +    let answer =
  +        [1; 10; 100; 1000; 10000; 100000; 1000000]
  +        |> Seq.map (fun i -> digitSeq |> Seq.item (i - 1))
  +        |> Seq.reduce (*)
  +
   module Problem48 =
       let sum =
           seq { 1..1000 }
  
positive.code:             | _ -> 
                  let root = int (sqrt (float n))
                  seq {3..2..root} |> Seq.forall (fun i -> n % i <> 0)
  
  module Problem1 =
      let answer =
  
negative.code:         |> System.String.Join
  
  module Problem75 =
      let answer =
          Triangles.pythagoreanTriplesWithSumBelow 1500000
          |> Seq.groupBy (fun (a, b, c) -> a + b + c)
          |> Seq.filter (fun (sum, triples) -> (triples |> Seq.length) = 1)
          |> Seq.length