Direct interop between .NET and Ela is currently not implemented. The primary reason for that is the fact that .NET types are organized according to OOP principles and it would be really hard to use them from Ela – it would basically require you to wrap all the methods into functional style wrappers, otherwise the code would look pretty clumsy.
It is possible to manually extend Ela types with a new type, based on .NET type. You can implement an Ela type in C# by inheriting ElaObject (defined in Ela.dll) or just by writing an Ela module in C# (by inheriting ElaModule) and exposing “raw” functions to work with the data type. Actually ‘datetime’ (from datetime.ela module) is implemented like this.
As for data marshalling – it can be done automatically, e.g. Ela types can be converted to .NET types. For example, you can run some Ela code from your C# code and it would fetch a value of a .NET type. Also some built-in Ela types (such as lists, ElaList, or tuples, ElaTuple) can be operated directly within C# code - with some limitations, of course.