anchor.diff:    let linkAccount speechOption =
       { empty with Card = Some LinkAccount }
   
  -let handler = Interop.createHandler (fun context request -> async {
  -  let request, session = Request.ofRawRequest None request
  +type Handler<'a> = Request -> Session<'a> -> Async<Response * 'a>
  +
  +module Lambda =
  +  let ofHandler (defaultAttributes : 'a, handler : Handler<'a>) : Interop.LambdaHandler =
  +    Interop.createHandler (fun context request -> async {
  +      let request, session = Request.ofRawRequest defaultAttributes request
  +      let! response, attributes = handler request session
  +      return Response.toRawResponse response attributes
  +    })
  +
  +let handler = Lambda.ofHandler (None, fun request session -> async {
     let response =
       Response.say (Text "Hello world!")
       |> Response.withCard (
  
positive.code:   {
      Attributes : 'a
      IsNewSession : bool
      Original : Interop.Request
    }
  
  let attributesKey = "AlexaFs"
  
negative.code: 
    // Prompt user to log in
    let linkAccount = Response.linkAccount (Some (Text "Please log in."))
    return response, None
  })
  