I've defined the following type which has the exact same structure as option.
Inductive optionX A := NoneX | SomeX (a : A).
While Check Some 1 correctly infers the type parameter A, Check SomeX 1 produces the message
The term "1" has type "nat" while it is expected to have type "Type".
Am I missing something? Note that it works fine if I explicitly provide the type parameter: Check SomeX(nat) 1.