У меня есть функция, которая получает объект obj и пытается угадать, является ли она строкой, фреймом Дедла или чем-то еще:
let exampleF (data : obj) =
match data with
| :? string as s -> "string: " + s
| :? Frame<'a,'b> as d -> "Frame"
| _ -> "something else"
Проблема в том, что Frame <'a,' b> ограничен набрать Frame . Так что, если бы у меня был someFrame типа Frame , exampleF вывел бы «что-то еще». Однако, если в exampleF есть другая ветка с «:? Frame as d -> ”, someFrame будет правильно перехвачен.
Как я могу захватить все кадры в шаблоне, подобном такому, без указания внутренних типов?