type fixes and bindings + notes on subtyping
This commit is contained in:
parent
7e3c7c88ea
commit
c18f56f7be
28 changed files with 2253 additions and 783 deletions
21
example/non-parse/ex6.msph
Normal file
21
example/non-parse/ex6.msph
Normal file
|
@ -0,0 +1,21 @@
|
|||
type A[X, Y] = {
|
||||
type B[Z] = {
|
||||
mb : X & Z
|
||||
}
|
||||
|
||||
ma : B[Y]
|
||||
}
|
||||
|
||||
|
||||
m : A[M, N]
|
||||
|
||||
|
||||
m : ⟨X -> M, Y -> N⟩ {
|
||||
ma : B[Y]
|
||||
}
|
||||
|
||||
m : ⟨X -> M, Y -> N⟩ {
|
||||
ma : ⟨Z -> Y⟩ {
|
||||
mb : X & Z
|
||||
}
|
||||
}
|
9
example/subt/rec-lockstep.msph
Normal file
9
example/subt/rec-lockstep.msph
Normal file
|
@ -0,0 +1,9 @@
|
|||
|
||||
type A = { x : { y : A } }
|
||||
|
||||
type B = { y : { x : B } }
|
||||
|
||||
|
||||
assert { x : B } <: A
|
||||
|
||||
assert A <: { x : B }
|
Loading…
Add table
Add a link
Reference in a new issue