anchor.diff:          | Some otherUser -> 
             let! isFollowingOtherUser = 
               isFollowing user otherUser.UserId
  -          if isFollowingOtherUser then
  -            let userProfile = 
  -              newProfile OtherFollowing otherUser
  -            return Some userProfile
  -          else  
  -            let userProfile = 
  -              newProfile OtherNotFollowing otherUser
  -            return Some userProfile
  +          let userProfileType = 
  +            userProfileType isFollowingOtherUser
  +          let userProfile = 
  +            newProfile userProfileType otherUser
  +          return Some userProfile
           | None -> return None
  +        
     }
   
   module Suave =
  
positive.code:   | Self
    | OtherNotFollowing
    | OtherFollowing
  
    type UserProfile = {
      User : User
  
negative.code: 
    type FindUserProfile = 
      Username -> User option -> AsyncResult<UserProfile option, Exception>
    let findUserProfile 
      (findUser : FindUser) (isFollowing : IsFollowing) 
      (username : Username) loggedInUser  = asyncTrial {
  
      match loggedInUser with
      | None -> 
        let! userMayBe = findUser username
        return Option.map (newProfile OtherNotFollowing) userMayBe
      | Some (user : User) -> 
        if user.Username = username then
          let userProfile = newProfile Self user
          return Some userProfile
        else  
          let! userMayBe = findUser username
  