@@ -140,7 +140,8 @@ expression (L span expr) =
140140 args' <- mapM expression args
141141 return $ case args' of
142142 [arg] -> func' <| arg
143− _ -> ref aN `call` (func':args')
143+ _ | length args' <= 9 -> ref aN `call` (func':args')
144+ | otherwise -> foldl1 (<|) (func':args')
144145 where
145146 aN = "A" ++ show (length args)
146147 (func, args) = getArgs e1 [e2]