anchor.diff:    }
     let gravatarUrl (emailAddress : UserEmailAddress) =
       use md5 = MD5.Create()
  -    emailAddress.Value.Trim().ToLowerInvariant()  
  +    emailAddress.Value 
       |> System.Text.Encoding.Default.GetBytes
       |> md5.ComputeHash
       |> Array.map (fun b -> b.ToString("x2"))
  
positive.code:   open Domain
    open User
    open Suave.DotLiquid
    open Chessie.ErrorHandling
    open Chessie
  
    type UserProfileViewModel = {
      Username : string
  
negative.code:     IsSelf = false
    }
  
    type FindUserProfile = 
      Username -> AsyncResult<UserProfile option, Exception>
    let findUserProfile (findUser : FindUser) username = asyncTrial {
      let! userMayBe = findUser username
      return Option.map newProfile userMayBe
    }
  
    type HandleUserProfile = 
      Username -> User option -> AsyncResult<UserProfile option, Exception>
    let handleUserProfile findUserProfile (username : Username) loggedInUser  = asyncTrial {
      match loggedInUser with
      | None -> 
  