Module type Sig.With_Partitionning

type 'a decision
type boolean
val boolean_split : ('a -> 'a -> 'a decision) -> boolean -> boolean

The function goes from the strategy to the partitionning map; this requires the polymorphic argument.