You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Original bug ID: 5343 Reporter:@garrigue Assigned to:@garrigue Status: closed (set by @xavierleroy on 2016-12-07T10:49:21Z) Resolution: fixed Priority: normal Severity: minor Version: 3.12.1 Fixed in version: 4.01.0+dev Category: ~DO NOT USE (was: OCaml general) Related to:#5863#6505 Parent of:#6007#6870 Monitored by: "Julien Signoles"
Bug description
The following example should not be accepted...
module M : sig
type 'a t
type u = u t and v = v t
val f : int -> u
val g : v -> bool
end = struct
type 'a t = 'a
type u = int and v = bool
let f x = x
let g x = x
end;;
let h x = M.g (M.f x);;
val h : int -> bool =
h 3;;
: bool =
The text was updated successfully, but these errors were encountered:
Abstract types in the current module were assumed to be contractive, which is not true in the case of signatures.
Still think about making them contractive if they were not defined in the signature, but an outer implementation.
Original bug ID: 5343
Reporter: @garrigue
Assigned to: @garrigue
Status: closed (set by @xavierleroy on 2016-12-07T10:49:21Z)
Resolution: fixed
Priority: normal
Severity: minor
Version: 3.12.1
Fixed in version: 4.01.0+dev
Category: ~DO NOT USE (was: OCaml general)
Related to: #5863 #6505
Parent of: #6007 #6870
Monitored by: "Julien Signoles"
Bug description
The following example should not be accepted...
module M : sig
type 'a t
type u = u t and v = v t
val f : int -> u
val g : v -> bool
end = struct
type 'a t = 'a
type u = int and v = bool
let f x = x
let g x = x
end;;
let h x = M.g (M.f x);;
val h : int -> bool =
h 3;;
The text was updated successfully, but these errors were encountered: