The easiest approach is to expose your API using standard .NET delegate types. In this case, this means that your F # definition should look larger:
let X (y:Action<int>) = ()
However, if you want your F # API to be the same as it is now, you can use FuncConvert.ToFSharpFunc from C #
ModuleName.X(FuncConvert.ToFSharpFunc(x => x*x));
source share