module language/ring sig Node {next: Node, value: Value one -> Time} sig Time {next: Time} sig Value {} fact { all n: Node | Node in n.^next -- no ^next & iden no ^(Time <: next) & iden } pred show () { } run show for 3 but exactly 3 Node, 0 Value, 0 Time