let x = ([]:?) in 3 :: x;;
x is dyn empty list, but compiler handles it as a polymorphic function because the type for the empty list becomes type variable.
***** Coercion-insertion *****
f: let x = fun 'x10 -> []<['x10!p];[?]!> in 3 :: x[ν]<[?]?p;[int?p;id{int}]>
U: [int]
...
***** Closure *****
Fatal error: exception Not_found
xis dyn empty list, but compiler handles it as a polymorphic function because the type for the empty list becomes type variable.