Interface: apiver v1_0_0 apiver changed v1_0_3 apiver changed v1_1_0 func parse_datetime(ref String s, ref writeonly Date d) -> bool Implementation: func parse_datetime(ref String s, ref writeonly Date d) -> bool { parse_date(...) ... if apiver >= v1_1_0 { ... } ... bool bugcompat = apiver < v1_0_3 ... } Generates this code: type parse_datetime$apiver = enum ( v1_0_0 = 0 v1_0_3 v1_1_0 ) func parse_datetime@v1_0_0(ref String s, ref writeonly Date d) -> bool { parse_datetime$internal(s, d, v1_0_0) } func parse_datetime@v1_0_3(ref String s, ref writeonly Date d) -> bool { parse_datetime$internal(s, d, v1_0_3) } func parse_datetime@v1_1_0(ref String s, ref writeonly Date d) -> bool { parse_datetime$internal(s, d, v1_1_0) } func parse_datetime(ref String s, ref writeonly Date d, enum parse_datetime$apiver ver) -> bool { parse_date(...) ... if apiver >= .v1_1_0 { ... } ... bool bugcompat = apiver < .v1_0_3 ... }