def _construct_alphabets(outcomes):
    """
    Core construction of alphabets. No sanity checks.

    """
    from dit.utils import OrderedDict
    outcome_length = len(outcomes[0])
    alphabets = [OrderedDict() for i in range(outcome_length)]
    for outcome in outcomes:
        for i, symbol in enumerate(outcome):
            alphabets[i][symbol] = True
    alphabets = tuple(map(tuple, alphabets))
    return alphabets
