sig type ('a, 'b, 'c) t val invariant : 'a Invariant_intf.inv -> 'b Invariant_intf.inv -> 'c Invariant_intf.inv -> ('a, 'b, 'c) Invariant_intf.S3.t Invariant_intf.inv end