You’re almost there. Parentheses are required in order that the compiler interprets a let-bound as pattern matching:
let (OrderId id) = orderId
If orderId
is a parameter of a function, you can also use pattern matching directly there:
let extractId (OrderId id) = id