Version française
Home     About     Download     Resources     Contact us    
Browse thread
Error: In the definition of t, type ('a, 'b) t should be ('b, 'a) t
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Edgar Friendly <thelema314@g...>
Subject: Error: In the definition of t, type ('a, 'b) t should be ('b, 'a) t
This error message was new to me, and I wondered what's going on and why:

# type ('a, 'b) t = [ `A | `T of ('b, 'a) t ];;
Error: In the definition of t, type ('a, 'b) t should be ('b, 'a) t

I can get unhelpful suggestions through foolishness with three type 
parameters:
# type ('a, 'b, 'c) t = [ `A | `T of ('a, 'c, 'b) t | `V of ('b, 'c, 'a) 
t];;
Error: In the definition of t, type ('a, 'b, 'c) t should be ('c, 'a, 'b) t
# type ('c, 'a, 'b) t = [ `A | `T of ('a, 'c, 'b) t | `V of ('b, 'c, 'a) 
t];;
Error: In the definition of t, type ('a, 'b, 'c) t should be ('b, 'c, 'a) t

Any explanation of what's going on?

Thanks,
E