anchor.diff:      | List      -> listFormViewTemplate page
       | Search    -> searchFormViewTemplate page
       | Register  -> [registerFormViewTemplate page; registerErroredFormViewTemplate page] |> flatten
  -    | Login     -> [loginFormViewTemplate page; loginErroredFormViewTemplate page] |> flatten
  +    | Login     -> [loginFormViewTemplate; loginErroredFormViewTemplate page] |> flatten
       | Jumbotron -> jumbotronViewTemplate site page
   
     viewTemplate site page page.PageMode
  
positive.code:               >=> statefulForSession
                >=> sessionStore (fun store -> store.set "user_id" loginAttempt.UserID)
                >=> request (fun _ -> FOUND "/")
              | None -> OK view_login
          else
            OK (view_errored_%s validation %s))
      ]"""  page.AsFormVal page.AsFormVal page.AsFormVal page.AsFormVal page.AsFormVal page.AsFormVal page.AsVal page.AsFormVal
  
negative.code:     ]
      scripts.common""" page.AsFormVal page.AsFormType page.Name page.Name (formatErroredFields page page.Fields 5)
  
  let loginFormViewTemplate =
    sprintf """
  let view_login error email =
    let errorTag =
      if error
      then stand_alone_error "Invalid email or password"
      else emptyText
  
    base_html
      "Login"
      [
        base_header brand
        common_register_form
          "Login"
          [
            errorTag
            hiddenInput "UserID" "-1"
            icon_label_text "Email" email "envelope"
            icon_password_text "Password" "" "lock"
          ]
      ]
      scripts.common"""
  
  let loginErroredFormViewTemplate (page : Page) =
    sprintf """
  