FSharpList<T> (which is a .Net name of type F # list<T> ) does not implement IList<T> because it does not make sense.
IList<T> is for accessing and modifying collections that the index can access, but list<T> not. To use it from C #, you can explicitly use this type:
FSharpList<MyModule.X> l = MyModule.l; var l = MyModule.l;
Or you can use the fact that it implements IEnumerable<T> :
IEnumerable<MyModule.X> l = MyModule.l;
Or, if you need IList<T> , you can use LINQ ToList() , as Ani suggested:
IList<MyModule.X> l = MyModule.l.ToList();
But you must remember that the F # list is immutable and therefore there is no way to change it.
svick source share