Andreas Rossberg a écrit :
On Feb 27, 2010, at 02:52, Guillaume Yziquel wrote:
I've been struggling to have a type system where I could do the
following subtyping:
'a t1 :> t2 and t2 :> 'a t1
Hm, what do you mean? Subtyping ought to be reflexive and antisymmetric
(although the latter is
Guillaume Yziquel writes:
> Andreas Rossberg a écrit :
>> On Feb 27, 2010, at 02:52, Guillaume Yziquel wrote:
>>>
>>> I've been struggling to have a type system where I could do the
>>> following subtyping:
>>>
>>> 'a t1 :> t2 and t2 :> 'a t1
>>
>> Hm, what do you mean? Subtyping ought to be r
Goswin von Brederlow a écrit :
Guillaume Yziquel writes:
My goal is to implement a type inference barrier.
You can do
type 'a q = private w
and from the type inference point of view, int q and float q are two
distinct types, that you can subtype to a common type.
What I want is also to ha
***
Call For Papers
CICLOPS-WLPE 2010
Joint Workshop on
Implementation of Constraint Logic Programming Systems
On Feb 27, 2010, at 14:11, Guillaume Yziquel wrote:
# type q = private w and w = private q;;
type q = private w
and w = private q
# let f (x : q) = (x : q :> w);;
val f : q -> w =
# let f (x : q) = (x : w);;
Error: This expression has type q but an expression was expected of
type w
#
Intere
Andreas Rossberg a écrit :
On Feb 27, 2010, at 14:11, Guillaume Yziquel wrote:
# type q = private w and w = private q;;
type q = private w
and w = private q
# let f (x : q) = (x : q :> w);;
val f : q -> w =
# let f (x : q) = (x : w);;
Error: This expression has type q but an expression was expe
Guillaume Yziquel a écrit :
Andreas Rossberg a écrit :
On Feb 27, 2010, at 14:11, Guillaume Yziquel wrote:
# type q = private w and w = private q;;
type q = private w
and w = private q
# let f (x : q) = (x : q :> w);;
val f : q -> w =
# let f (x : q) = (x : w);;
Error: This expression has type
Guillaume Yziquel a écrit :
Guillaume Yziquel a écrit :
Andreas Rossberg a écrit :
On Feb 27, 2010, at 14:11, Guillaume Yziquel wrote:
# type q = private w and w = private q;;
type q = private w
and w = private q
# let f (x : q) = (x : q :> w);;
val f : q -> w =
# let f (x : q) = (x : w);;
Er