@@ -189,9 +189,9 @@ constrainDef env info (pattern, expr, maybeTipe) =
189 do flexiVars <- mapM (\_ -> flexibleVar) qs
189 do flexiVars <- mapM (\_ -> flexibleVar) qs
190 let inserts = zipWith (\arg typ -> Map.insert arg (VarN typ)) qs flexiVars
190 let inserts = zipWith (\arg typ -> Map.insert arg (VarN typ)) qs flexiVars
191 env' = env { Env.value = List.foldl' (\x f -> f x) (Env.value env) inserts }
191 env' = env { Env.value = List.foldl' (\x f -> f x) (Env.value env) inserts }
192− typ <- Env.instantiateType env tipe
192+ (vars, typ) <- Env.instantiateTypeWithContext env tipe Map.empty
193 let scheme = Scheme { rigidQuantifiers = [],
193 let scheme = Scheme { rigidQuantifiers = [],
194− flexibleQuantifiers = flexiVars,
194+ flexibleQuantifiers = flexiVars ++ vars,
195 constraint = CTrue,
195 constraint = CTrue,
196 header = Map.singleton name typ }
196 header = Map.singleton name typ }
197 c <- constrain env' expr typ
197 c <- constrain env' expr typ