Tomas already gives a good answer. I will comment a bit here.
Let's see some source code in matrix.fsi from PowerPack:
type matrix = Matrix<float>
so matrix is a concrete type instantiated from the meta type Matrix. You could also use
type intmatrix = Matrix<int>
to define your int matrix type.
but to use something like:
let B = matrix [ [ 1.0; 7.0 ];
[ 1.0; 3.0 ] ]
We need another function called matrix, whose deceleration as
val matrix : seq<#seq<float>> -> matrix
let's see its implementation in matrix.fs:
let matrix ll = Microsoft.FSharp.Math.Matrix.ofSeq ll
while Microsoft.FSharp.Math.Matrix module is for double(in f# float) matrix, Microsoft.FSharp.Math.Matrix.Generics is for generic matrix. You can implement your intmatrix 'constructor'.
put it together:
type intmatrix = Matrix<int>
let intmatrix ll = Matrix.Generic.ofSeq ll
let C = intmatrix [ [1;2]; [3;4] ];