type int_unit
= Int
of int | Unit
of unit;; type everything = Int_Unit of int_unit | Str_Float of str_float;;
let f = function
| Int_Unit iu -> begin match iu with
| Int _ -> "int"
| Unit _ -> "unit"
end
| Str_Float sf -> begin match sf with
| Float _ -> "float"
end
dHlwZSBpbnRfdW5pdCA9IEludCBvZiBpbnQgfCBVbml0IG9mIHVuaXQ7Owp0eXBlIHN0cl9mbG9hdCA9IFN0cmluZyBvZiBzdHJpbmcgfCBGbG9hdCBvZiBmbG9hdDs7CnR5cGUgZXZlcnl0aGluZyA9IEludF9Vbml0IG9mIGludF91bml0IHwgU3RyX0Zsb2F0IG9mIHN0cl9mbG9hdDs7CgpsZXQgZiA9IGZ1bmN0aW9uCiAgICB8IEludF9Vbml0IGl1IC0+IGJlZ2luIG1hdGNoIGl1IHdpdGgKICAgICAgICB8IEludCBfIC0+ICJpbnQiCiAgICAgICAgfCBVbml0IF8gLT4gInVuaXQiCiAgICBlbmQKICAgIHwgU3RyX0Zsb2F0IHNmIC0+IGJlZ2luIG1hdGNoIHNmIHdpdGgKICAgICAgICB8IEZsb2F0IF8gLT4gImZsb2F0IgogICAgICAgIHwgU3RyaW5nIF8gLT4gInN0cmluZyIKICAgIGVuZA==