        evnts = Set.elems alphabet
        cache  = Map.fromSet (uncurry oracle) $
                 Set.fromList [ (x, y) | x <- evnts, y <- evnts, x <= y ]
        co a b = cache Map.! (min a b, max a b)

    putStr "Found concurrent pairs:    "
    let foundPairs = [ (decode x, decode y) | (x:xs) <- tails evnts, y <- xs, x `co` y ]
    print foundPairs
    if expPairs /= foundPairs