Dear Jacques:
I was reading the manual of chap4, it says
I don't follow the (&) operation here, it means intersection types ?
I managed to make a working example:
type 'a ab = [< `a|`b] as 'a ;;
type 'a ac = 'a constraint 'a = [< `a | `c ]
type ('a,'b) m = [< `m of 'a ab & 'a ac ] as 'b;;
let u : ('a,'b) m = `m `a;;
(* val u : ([ `a ], [ `m of [ `a ] ab ]) m = `m `a *)
But still don't understand its use case, can you explain a bit about this?
Many thanks
--
Regards
-- Bob