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