module type FOO =
sig
type foo
type bar
type _ qux =
| F : foo qux
| B : bar qux
val x : bar qux
end
module Foo : FOO =
struct
type _ qux =
| F : foo qux
| B : bar qux
let x = F
end
let _ = (match Foo.x with Foo.B -> "all is fine")
bW9kdWxlIHR5cGUgRk9PID0Kc2lnCiAgdHlwZSBmb28KICB0eXBlIGJhcgogIHR5cGUgXyBxdXggPQogICAgfCBGIDogZm9vIHF1eAogICAgfCBCIDogYmFyIHF1eAogIHZhbCB4IDogYmFyIHF1eAplbmQKCm1vZHVsZSBGb28gOiBGT08gPQpzdHJ1Y3QKICB0eXBlIGZvbyA9IGludAogIHR5cGUgYmFyID0gaW50CiAgdHlwZSBfIHF1eCA9CiAgICB8IEYgOiBmb28gcXV4CiAgICB8IEIgOiBiYXIgcXV4CiAgbGV0IHggPSBGCmVuZAoKbGV0IF8gPSAobWF0Y2ggRm9vLnggd2l0aCBGb28uQiAtPiAiYWxsIGlzIGZpbmUiKQ==