anchor.diff:        | null | ""  -> fail "Username should not be empty"
         | x when x.Length > 12 -> fail "Username should not be more than 12 characters"
         | x -> x.Trim().ToLowerInvariant() |> Username |> ok
  +    static member ToAsyncResult username =
  +      Username.TryCreate username
  +      |> mapFailure (System.Exception)
  +      |> async.Return
  +      |> AR
       member this.Value = 
         let (Username username) = this
         username
  
positive.code:       user.EmailVerificationCode <- ""
        user.IsEmailVerified <- true
        do! submitUpdates ctx
        return Some user.Username
    }
      
  module Email =
  
negative.code:       return! page signupTemplatePath viewModel ctx
    }
  
    let handleVerifyUserResult result =
      let onSucces (username, _ )=
        match username with
        | Some (username : Username) ->
          page "user/verification_success.liquid" username.Value
        | _ ->
          page "not_found.liquid" "invalid verification code"
      let onFailure errs =
        let ex : System.Exception = List.head errs
        printfn "%A" ex
        page "server_error.liquid" "error while verifying email"
      either onSucces onFailure result
  