type nonrec t = string as 's
type nonrec t = _ as 'underscore
type nonrec t = parenthesizedType as 'parens
type nonrec t = (int -> unit (a:1)) as 'arrow
type nonrec t = int -> unit as 'unitAlias (a:1)
type nonrec t = (int -> float -> unit (a:2)) as 'arrowAlias
type nonrec t = int -> float -> unit as 'unitAlias (a:2)
type nonrec t = int as 'myNumber
type nonrec t = Mod.Sub.t as 'longidentAlias
type nonrec t = (int as 'r, int as 'g, int as 'b) color as 'rgb
type nonrec t = (int as 'r, int as 'g, int as 'b) Color.t as 'rgb
type nonrec t = [%t ] as 'extension
type nonrec t = [%t.typ ] as 'extension
type nonrec t = [%ext.foo {js|raw|js}] as 'extension
type nonrec tup = ((int as 'x) * (int as 'y)) as 'tupleAlias
let (t : string as 's) = ()
let (t : _ as 'underscore) = ()
let (t : parenthesizedType as 'parens) = ()
let (t : (int -> unit (a:1)) as 'arrow) = ()
let (t : int -> unit as 'unitAlias (a:1)) = ()
let (t : (int -> float -> unit (a:2)) as 'arrowAlias) = ()
let (t : int -> float -> unit as 'unitAlias (a:2)) = ()
let (t : int as 'myNumber) = ()
let (t : Mod.Sub.t as 'longidentAlias) = ()
let (t : (int as 'r, int as 'g, int as 'b) color as 'rgb) = ()
let (t : (int as 'r, int as 'g, int as 'b) Color.t as 'rgb) = ()
let (t : [%t ] as 'extension) = ()
let (t : [%t.typ ] as 'extension) = ()
let (t : [%ext.foo {js|raw|js}] as 'extension) = ()
let (t : ((int as 'x) * (int as 'y)) as 'tupleAlias) = ()