anchor.diff:    open Chessie.ErrorHandling
     open BCrypt.Net
     open System.Security.Cryptography
  +
  +  let mapFailure f aResult = 
  +    let mapFirstItem xs = 
  +      List.head xs |> f |> List.singleton 
  +    mapFailure mapFirstItem aResult
   
     type Username = private Username of string with
       static member TryCreate (username : string) =
  
positive.code:       return! page signupTemplatePath viewModel ctx
    }
  
    let handleVerifyUserResult (result : Result<string option, System.Exception>) =
      let onSucces (username, _ )=
        match username with
        | Some username ->
          page "user/verification_success.liquid" username
        | _ ->
          page "not_found.liquid" "invalid verification code"
      let onFailure errs =
        let ex = List.head errs
        printfn "%A" ex
        page "server_error.liquid" "error while verifying email"
      either onSucces onFailure result
  
negative.code:     CreateUser -> SendSignupEmail -> UserSignupRequest 
        -> AsyncResult<UserId, UserSignupError>
   
    type VerifyUser = string -> AsyncResult<Username option, System.Exception>
  
    
  
    let mapAsyncFailure f aResult =
      aResult
  