In the code block below, the first two calls to judgment-holds fail, but the third one succeeds. They should probably all succeed.
[define-language LC]
[define-judgment-form LC
#:mode [J1 I O]
[----
[J1 any_1 any_1]]]
[define-metafunction LC
M : any -> any
[[M any] any]]
[define-judgment-form LC
#:mode [J2 I]
[[J1 any_1 [M any_1]]
----
[J2 any_1]]]
[define-judgment-form LC
#:mode [J3 I I]
[[J1 any_1 any_2]
----
[J3 any_1 any_2]]]
[judgment-holds [J1 1 [M 1]]]
[judgment-holds [J2 1]]
[judgment-holds [J3 1 [M 1]]]
In the code block below, the first two calls to
judgment-holdsfail, but the third one succeeds. They should probably all succeed.