Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/gh-pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
- uses: actions/checkout@v3

- name: Setup OCaml
uses: ocaml/setup-ocaml@v2
uses: ocaml/setup-ocaml@v3
with:
ocaml-compiler: 4.14.x

Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ jobs:
- uses: actions/checkout@v2

- name: Setup OCaml
uses: avsm/setup-ocaml@v1
uses: ocaml/setup-ocaml@v3
with:
ocaml-compiler: 4.14.x

- name: Install Opam packages
run: opam pin add -n .; opam install eff --deps-only
Expand Down
7 changes: 5 additions & 2 deletions src/03-typechecker/unification.ml
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,10 @@ and dirt_omega_step ~loc sub resolved unresolved w dcons =
{ effect_set = ops2; row = Dirt.Row.Param d2 } ) ->
let w' = DirtCoercionParam.refresh w in
let d2' = Dirt.Param.refresh d2 in
let dirt_sub =
Substitution.add_dirt_substitution_e d2
{ effect_set = Effect.Set.diff ops1 ops2; row = Dirt.Row.Param d2' }
in
let w_ty' =
( (* In case d1 = d2, we need to substitute d1 as well *)
Substitution.apply_substitutions_to_dirt dirt_sub
Expand All @@ -302,8 +306,7 @@ and dirt_omega_step ~loc sub resolved unresolved w dcons =
} )
in
let sub' =
Substitution.add_dirt_substitution_e d2
{ effect_set = Effect.Set.diff ops1 ops2; row = Dirt.Row.Param d2' }
dirt_sub
|> Substitution.add_dirt_var_coercion w
(Coercion.unionDirt (ops1, Coercion.dirtCoercionVar w' w_ty'))
in
Expand Down