Thelema
Thelema

Reputation: 14746

How can I create a type with multiple parameters in OCaml?

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?

Upvotes: 5

Views: 1887

Answers (2)

Thelema
Thelema

Reputation: 14746

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.

Upvotes: 8

Pascal Cuoq
Pascal Cuoq

Reputation: 80276

# type ('a, 'b) couple = 'a * 'b ;;

For instance...

Upvotes: 2

Related Questions