val a = {i=5, j="test"} ;; val b = #i a ;; type t = {i: nat, j: string} ;; module Tuple: sig type 'a tuple = { first: 'a, second: 'a } val x: 'a tuple val y: 'a end = struct type 'a tuple = { first: 'a, second: 'a } val x = {first=1, second=2} val y = #first x end