From 68ae919afa9873e0876cb7b97ca6304bb5ad81d3 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sun, 18 May 2025 07:46:56 +0200 Subject: [PATCH] avoid unnecessary variants --- src/compiler/api/GF/Compile/TypeCheck/ConcreteNew.hs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/compiler/api/GF/Compile/TypeCheck/ConcreteNew.hs b/src/compiler/api/GF/Compile/TypeCheck/ConcreteNew.hs index 9fa151701..c7a929f17 100644 --- a/src/compiler/api/GF/Compile/TypeCheck/ConcreteNew.hs +++ b/src/compiler/api/GF/Compile/TypeCheck/ConcreteNew.hs @@ -501,7 +501,7 @@ resolveOverloads scope c t0 q args mb_ty = do arg_tys <- mapCM (checkArg g) c1 args let v_ttys = mapC (\c (t,ty) -> (t,eval g [] c ty [])) c2 ttys try (\(fun,fun_ty) -> reapply2 scope c3 fun fun_ty arg_tys mb_ty) - (\ttys -> fmap (\(ts,ty) -> (FV ts,ty)) (snd (minimum g ttys))) + (\ttys -> fmap (\(ts,ty) -> (mkFV ts,ty)) (snd (minimum g ttys))) v_ttys where checkArg g c (ImplArg arg) = do @@ -515,6 +515,9 @@ resolveOverloads scope c t0 q args mb_ty = do let v = eval g (scopeEnv scope) c2 arg [] return (arg,v,arg_ty) + mkFV [t] = t + mkFV ts = FV ts + minimum g [] = (maxBound,err) where err = evalError (pp "Overload resolution failed")