I'm trying to create a type that has multiple type parameters. I know how to make a type with one parameter:
type 'a foo = 'a * int
But I need to have two parameters, so that I can parameterize the 'int' part. How can I do this?
I'm trying to create a type that has multiple type parameters. I know how to make a type with one parameter:
type 'a foo = 'a * int
But I need to have two parameters, so that I can parameterize the 'int' part. How can I do this?
The way to do this is:
type ('a, 'b) foo = 'a * 'b
Type parameters aren't curried, so you need to provide them in tuple form as a single parameter. A good example of this is the Hashtbl module:
type ('a, 'b) t
The type of hash tables from type 'a to type 'b.