Disco   Functional programming for discrete math.