'TODO move this to _split_to_stacks, deal with memoize better
TODO add test to this func'

def _is_simple_stack(self, stack):

    reduction_axes = [False, False]
    for s in stack:
        if isinstance(s, dict):
            if ((s['op'] == 'dot') or (s['op'] == 'transpose')):
                return False
            elif (s['op'] in OpCollection.reduction_ops):
                reduction_axes[s['axis']] = True
                if reduction_axes[(1 - s['axis'])]:
                    return False
    return True
