This is a program to color the edges of a hypercube using a user-defined rule. This is a probabilistic coloring algorithm and each run gives an instance of such a coloring. It sometimes aborts if the rule can not be satisfied partway through the run.