@_infer_type.register(irast.Array)
def __infer_array(ir, schema):
    if ir.elements:
        element_type = _infer_common_type(ir.elements, schema)
        if (element_type is None):
            raise ql_errors.EdgeQLError('could not determine array type', context=ir.context)
    else:
        raise ql_errors.EdgeQLError('could not determine type of empty array', context=ir.context)
    return s_types.Array(element_type=element_type)
@_infer_type.register(irast.Array)
def __infer_array(ir, schema):
    if ir.elements:
        element_type = _infer_common_type(ir.elements, schema)
        if (element_type is None):
            raise ql_errors.EdgeQLError('could not determine array type', context=ir.context)
    else:
        raise ql_errors.EdgeQLError('could not determine type of empty array', context=ir.context)
    return s_types.Array(element_type=element_type)