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