Problem: Um von Haskell-Typen zu fremden Typen und zurück zu gelangen, ist eine Menge Standardcode erforderlich.
Angenommen, wir arbeiten mit der folgenden Haskell-Datenstruktur:
%Vor% Um diese Datenstruktur in das Land von C zu bekommen, müssen wir ihr struct
analoges betrachten:
Aber um eine solche Struktur in C von Haskell zu übergeben, müssen wir HS_DataStructure
in folgendes umwandeln:
Dann müssen wir HS_Struct
eine Instanz von Storable
machen:
(Im obigen verwende ich hs2c Syntax).
Um nun zwischen HS_Struct
und HS_DataStructure
zu konvertieren, müssen wir die folgenden Hilfsfunktionen (!) verwenden:
Dies scheint eine wahnsinnige Menge an Standard zu sein, zwischen Haskell und C hin und her zu gehen.
CInt
, CString
und so weiter)? Dies würde Ihnen zumindest die Mühe ersparen, zwischen den Typen hin- und herwechseln zu müssen.