let `Instance = i
let `Instance as inst = i
let `Instance component = i
let `Instance component as inst = i
let `Instance component = i
let `Instance { render; subtree } = i
let `Instance { render; subtree } as x = i
let `Instance ({ render; subtree } as inst) = i
let `Instance ({ render; subtree }, inst) = i
let `Instance ({ render; subtree } : Instance.t) = i
let `Instance ({ render; subtree } : Instance.t) as inst = i
let `Instance ({ render; subtree } : Instance.t) = i
let `Instance (component, tree) = i
let `Instance (component, tree) as x = i
let `Instance ((component as x), (tree as y)) = i
let `Instance (component, tree) as inst = i
let `Instance (component, tree) = i
let (`Instance : React.t) = i
let (`Instance : React.t) as t = i
let (`Instance : React.t) as x = i
let ((`Instance (component : comp)) : React.t) = i
let ((`Instance (component : comp)) : React.t) = i
;;match x with
  | `Instance -> ()
  | `Instance as inst -> ()
  | `Instance comp -> ()
  | `Instance comp as inst -> ()
  | `Instance { render; subtree } -> ()
  | `Instance ({ render; subtree }, inst) -> ()
  | `Instance ({ render; subtree } : Instance.t) -> ()
  | `Instance ({ render; subtree } : Instance.t) -> ()
  | `Instance (comp, tree) -> ()
  | (`Instance (comp : Component.t) : React.t) -> ()
let f [arity:1]`Instance = i
let f [arity:1](`Instance as i) = i
let f [arity:1](`Instance component) = i
let f [arity:1](`Instance component) = i
let f [arity:1](`Instance { render; subtree }) = i
let f [arity:1](`Instance ({ render; subtree }, inst)) = i
let f [arity:1](`Instance ({ render; subtree } : Instance.t)) = i
let f [arity:1](`Instance ({ render; subtree } : Instance.t)) = i
let f [arity:1](`Instance (component, tree)) = i
let f [arity:1](`Instance (component, tree)) = i
let f [arity:1](`Instance : React.t) = i
let f [arity:1](`Instance : React.t) = i
let f [arity:1](`Instance (comp : Component.t) : React.t) = ()
;;for `Blue = x to y do () done
;;for `Blue as c = x to y do () done
;;for `Blue = x to y do () done
;;for `Blue as c = x to y do () done
;;for (`Blue : Color.t) = x to y do () done
;;for (`Blue : Color.t) as c = x to y do () done
;;for (`Blue : Color.t) as c = x to y do () done
;;for `Rgba (r, g, b) = x to y do () done
;;for `Rgba (r, g, b) as c = x to y do () done
;;for Rgba ((r : float), (g : float), (b : float)) = x to y do () done
;;for `Rgba ((r : float), (g : float), (b : float)) as c = x to y do () done
;;for (`Rgba (r, g, b) : Rgb.t) = x to y do () done
;;for (`Rgba (r, g, b) : Rgb.t) as c = x to y do () done
;;for (`Rgba (r, g, b) : Rgb.t) as c = x to y do () done
;;for `Point { x; y; z } = x to y do () done
;;for `Point { x; y; z } = x to y do () done
;;for `Point { x; y; z } as p = x to y do () done
;;match x with | #typeVar -> () | `lowercase -> ()
let cmp [arity:2]selectedChoice value =
  match (selectedChoice, value) with
  | (#a, #a) -> true
  | [|#b;#b|] -> true
  | #b::#b::[] -> true
  | { x = #c; y = #c } -> true
  | Constructor (#a, #a) -> true
  | `Constuctor (#a, #a) -> true
  | #a as x -> true
  | #a|#b -> true
  | (#a : typ) -> true
  | exception #a -> true
  | _ -> false
;;match polyVar with
  | `ease-in -> ()
  | `ease-out⛰ -> ()
  | `ease+++ (`1Blue, `r+) -> ()
  | _ -> ()