Flow_ast.Patternmodule RestElement: { ... };module Object: { ... };module Array: { ... };module Identifier: { ... };type t('M, 'T) = ('T, t'('M, 'T));and t'('M, 'T) = | Object(Object.t('M, 'T))| Array(Array.t('M, 'T))| Identifier(Identifier.t('M, 'T))| Expression(Expression.t('M, 'T));