ReshapeGate[TT] {.final.} = ref object of Gate[TT]
proc flatten[TT](a: Variable[TT]): Variable[TT]
proc reshape[TT](a: Variable[TT]; shape: Metadata): Variable[TT]
proc reshape[TT](a: Variable[TT]; shape: varargs[int]): Variable[TT]
proc squeeze[TT](v`gensym0: Variable[TT]; axis`gensym0: Natural): Variable[TT]
proc unsqueeze[TT](v`gensym1: Variable[TT]; axis`gensym1: Natural): Variable[TT]
template `[]`[TT](v: Variable[TT]; args: varargs[untyped]): Variable[TT]
Output: