+ | Wildcard, (g, t, k, `BranchTag) :: (g', t', k', tag) :: s
+ when g = [] || is_fresh (List.hd g) ->
+ new_stack
+ ((g', [], [], `BranchTag)
+ :: ([], t' @+ filter_open g @+ k, k', tag) :: s)
+ | Wildcard, _ -> fail (lazy "can't use wildcard here")