diff --git a/crates/compiler/unify/src/unify.rs b/crates/compiler/unify/src/unify.rs index bc23230ad5..815570ec69 100644 --- a/crates/compiler/unify/src/unify.rs +++ b/crates/compiler/unify/src/unify.rs @@ -3345,6 +3345,17 @@ fn unify_flat_type( outcome } + (Func(args, closure, ret, fx), EffectfulFunc) => { + let mut outcome = unify_pool(env, pool, *fx, Variable::EFFECTFUL, ctx.mode); + + outcome.union(merge( + env, + ctx, + Structure(Func(*args, *closure, *ret, Variable::EFFECTFUL)), + )); + + outcome + } (FunctionOrTagUnion(tag_names, tag_symbols, ext), Func(args, closure, ret, fx)) => { unify_function_or_tag_union_and_func( env,