let _ = 1
let _|_ = 1
let (_ : int) = 1
let ((_|_) : int) = 1
let ((_|_) : int) = 1
let (_ : unit)|(_ : unit) = 1
let _ as _x = 1
let _|_ as _x = 1
let _|_ as _x = 1
let _|_ as _x = 1
let _ as _y|_ as _x = 1
let _ as _y|_ as _x = 1
;;match () with
  | _ -> ()
  | _|_ -> ()
  | _ as _x -> ()
  | _ as _x|_ as _x -> ()
  | (_ : unit) -> ()
  | (_ : unit)|(_ : unit) -> ()
let f [arity:1]_ = ()
let f [arity:1](_ as _x) = ()
let f [arity:1](_ : unit) = ()
let f [arity:1](_ : unit) = ()
let f [arity:1]((_ : unit) as _x) = ()
let g [arity:2]a _ = ()
let g [arity:2]_ a = ()
;;for _ = 0 to 10 do () done
;;for _ as _x = 0 to 10 do () done
;;for _ = 0 to 10 do () done
;;for _ as _x = 0 to 10 do () done
;;for (_ : int) = 0 to 10 do () done
;;for (_ : int) as _x = 0 to 10 do () done