The last two lines in the following code got the compiler error?
open System
let s = new System.Collections.Generic.Stack<Tuple<int, int>>()
s.Push( 1, 2) // The type ''a * 'b' is not compatible with the type 'Tuple<int,int>'
s.Push(Tuple.Create(1, 2))
The error message of the s.Push(Tuple.Create(1, 2))
Type constraint mismatch. The type ''a * 'b' is not compatible with type 'Tuple' The type ''a * 'b' is not compatible with the type 'Tuple' type Tuple = static member Create : item1:'T1 -> Tuple + 7 overloads Full name: System.Tuple
Though F# tuples are represented with System.Tuple
in compiled form, they are not considered an "alias" for it from the logical language standpoint.
int * int
is not the same as System.Tuple<int, int>
as far as F# compiler is concerned.
Just use the F# tuple syntax for the Stack
generic argument, and it will work:
let s = new System.Collections.Generic.Stack<int * int>()
s.Push( 1, 2)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With