anchor.diff:    | Null       -> None
     | NotNull    -> None
     | Required   -> Some (sprintf """required "%s" %s""" field.Name property)
  +  | Min(_)     -> None
  +  | Max(_)     -> None
  +  | Range(_,_) -> None
  +
  +let attributeToTestName (field : Field) =
  +  match field.Attribute with
  +  | Id         -> None
  +  | Null       -> None
  +  | NotNull    -> None
  +  | Required   -> Some (sprintf """"%s is required" """ field.Name)
  +  | Min(_)     -> None
  +  | Max(_)     -> None
  +  | Range(_,_) -> None
  +
  +let attributeToTestBody (field : Field) =
  +  match field.Attribute with
  +  | Id         -> None
  +  | Null       -> None
  +  | NotNull    -> None
  +  | Required   -> Some (sprintf """displayed "%s is required" """ field.Name)
     | Min(_)     -> None
     | Max(_)     -> None
     | Range(_,_) -> None
  
positive.code:   ] |> List.choose id
    """ page.AsFormType page.AsFormVal page.AsFormType validations
  
  let generate (site : Site) =
    let html_results = site.Pages |> List.map pageLinkTemplate |> flatten
    let generated_html_result = generated_html_template html_results
  
negative.code:   | Password   -> Some (sprintf """password "%s" %s""" field.Name property)
    | Dropdown _ -> None
  
  let fieldToTestName (field : Field) =
    match field.FieldType with
    | Text       -> None
    | Paragraph  -> None
    | Number     -> None //parseInt
    | Decimal    -> None //parseDecimal
    | Date       -> None //parseDate
    | Email      -> Some """"is not a valid email" """
    | Name       -> None
    | Phone      -> None //parsePhone?
    | Password   -> Some (sprintf """"%s must be between 6 and 100 characters" """ field.Name)
    | Dropdown _ -> None
  
  let fieldToTestBody (field : Field) =
    match field.FieldType with
    | Text       -> None
    | Paragraph  -> None
    | Number     -> None //parseInt
    | Decimal    -> None //parseDecimal
    | Date       -> None //parseDate
    | Email      -> Some """displayed " is not a valid email" """
    | Name       -> None
    | Phone      -> None //parsePhone?
    | Password   -> Some (sprintf """displayed "%s must be between 6 and 100 characters" """ field.Name)
    | Dropdown _ -> None
  
  let attributeToValidation (field : Field) (page : Page) =
    let property = sprintf "%s.%s" page.AsFormVal field.AsProperty
    match field.Attribute with
  