Это, безусловно, возможно построить, так как все, что вам нужно сделать, это "заполнить типы" в соответствии с тем, как работает SDK. Сам провайдер типов будет реализовывать парсер для вашей грамматики, очень похоже на то, как провайдеры типов FSharp.Data реализуют парсеры для JSON, XML, et c.
Довольно весело (и забавно!) Примером чего-то подобного является Поставщик смешанных типов , который принимает источник F # в качестве входных данных, генерирует сборку, читает эту сборку и использует инфраструктуру поставщика типов для чтения сборки и предоставляет типы из сгенерированного кода. , Таким образом, вы действительно можете многое сделать, хотя я не могу сказать, что рекомендую следовать тому, что делает провайдер типов Mixin.