@@ -501,8 +501,15 @@ unit1 =
501srcTypeToVariable :: Int -> Pools -> Map.Map N.Name () -> Can.Type -> IO Variable
501srcTypeToVariable :: Int -> Pools -> Map.Map N.Name () -> Can.Type -> IO Variable
502srcTypeToVariable rank pools freeVars srcType =
502srcTypeToVariable rank pools freeVars srcType =
505+ | N.startsWith "number" name = FlexSuper Number (Just name)
506+ | N.startsWith "comparable" name = FlexSuper Comparable (Just name)
507+ | N.startsWith "appendable" name = FlexSuper Appendable (Just name)
508+ | N.startsWith "compappend" name = FlexSuper CompAppend (Just name)
509+ | otherwise = FlexVar (Just name)
504 makeVar name _ =
511 makeVar name _ =
505− UF.fresh (Descriptor (FlexVar (Just name)) rank noMark Nothing)
512+ UF.fresh (Descriptor (nameToContent name) rank noMark Nothing)
507 do flexVars <- Map.traverseWithKey makeVar freeVars
514 do flexVars <- Map.traverseWithKey makeVar freeVars
508 MVector.modify pools (Map.elems flexVars ++) rank
515 MVector.modify pools (Map.elems flexVars ++) rank