Как я могу использовать и вызывать функции Haskell с сигнатурами типа более высокого порядка из С# (DLLImport), например...
double :: (Int -> Int) -> Int -> Int -- higher order function
typeClassFunc :: ... -> Maybe Int -- type classes
data MyData = Foo | Bar -- user data type
dataFunc :: ... -> MyData
Какова соответствующая подпись типа в С#?
[DllImport ("libHSDLLTest")]
private static extern ??? foo( ??? );
Дополнительно (потому что это может быть проще): Как я могу использовать "неизвестные" типы Haskell внутри С#, поэтому я могу, по крайней мере, их обойти, без С#, зная какой-либо конкретный тип? Самая важная функциональность, которую мне нужно знать, это передать класс типа (например, Monad или Arrow).
Я уже знаю как скомпилировать библиотеку Haskell в DLL и использовать в С#, но только для функций первого порядка. Я также знаю qaru.site/info/192155/..., Почему GHC доступен для .NET и hs-dotnet, где я не нашел ЛЮБОЙ документации и образцов (для С# в Haskell направление).