anchor.diff:                                  match hole with
                                   | Hole.Simple ty ->
                                       varMap.Add((name, ty), arg)
  +                                | Hole.Event ->
  +                                    varMap.Add((name, EventTy), arg)
                                   | Hole.View valTy ->
                                       varMap.Add((name, ViewOf valTy), arg)
                                   | Hole.Var(valTy, hasView) ->
  
positive.code:                                         let n = a.Name.LocalName
                                          if n.StartsWith dataEvent then
                                              let eventName = n.[dataEvent.Length..]
                                              <@ Attr.Handler eventName %(getSimpleHole a.Value) @>
                                          else
                                              match getParts a.Value with
                                              | [] -> <@ Attr.Create n "" @>
  
negative.code: 
      let ViewOf ty = typedefof<View<_>>.MakeGenericType([|ty|])
      let VarOf ty = typedefof<Var<_>>.MakeGenericType([|ty|])
      let EventTy = typeof<WebSharper.JavaScript.Dom.Event -> unit>
  
      [<RequireQualifiedAccess>]
      type Hole =
          | Var of valTy: System.Type * hasView: bool
          | View of valTy: System.Type
          | Event
          | Simple of ty: System.Type
  
          member this.ArgType =
              match this with
              | Var (valTy = t) -> VarOf t
              | View (valTy = t) -> ViewOf t
              | Event -> EventTy
              | Simple (ty = t) -> t
  
  [<TypeProvider>]
  