@@ -471,18 +471,18 @@ problemToHint problem =
472 T.BadFlexSuper super _ tipe ->
472 T.BadFlexSuper super _ tipe ->
473 case tipe of
473 case tipe of
474− T.Lambda _ _ _ -> badFlexSuper super
474+ T.Lambda _ _ _ -> badFlexSuper super tipe
475 T.Infinite -> []
475 T.Infinite -> []
476 T.Error -> []
476 T.Error -> []
477 T.FlexVar _ -> []
477 T.FlexVar _ -> []
478 T.FlexSuper s _ -> badFlexFlexSuper super s
478 T.FlexSuper s _ -> badFlexFlexSuper super s
479 T.RigidVar y -> badRigidVar y (toASuperThing super)
479 T.RigidVar y -> badRigidVar y (toASuperThing super)
480 T.RigidSuper s _ -> badRigidSuper s (toASuperThing super)
480 T.RigidSuper s _ -> badRigidSuper s (toASuperThing super)
481− T.Type _ _ _ -> badFlexSuper super
481+ T.Type h n _ -> badFlexSuper super tipe
482− T.Record _ _ -> badFlexSuper super
482+ T.Record _ _ -> badFlexSuper super tipe
483− T.Unit -> badFlexSuper super
483+ T.Unit -> badFlexSuper super tipe
484− T.Tuple _ _ _ -> badFlexSuper super
484+ T.Tuple _ _ _ -> badFlexSuper super tipe
485− T.Alias _ _ _ _ -> badFlexSuper super
485+ T.Alias _ _ _ _ -> badFlexSuper super tipe
487 T.BadRigidVar x tipe ->
487 T.BadRigidVar x tipe ->
488 case tipe of
488 case tipe of
@@ -554,16 +554,45 @@ toASuperThing super =
554-- BAD SUPER HINTS
554-- BAD SUPER HINTS
557−badFlexSuper :: T.Super -> [H.Doc]
557+badFlexSuper :: T.Super -> T.Type -> [H.Doc]
558−badFlexSuper super =
558+badFlexSuper super tipe =
559 case super of
559 case super of
560− T.Comparable -> [ H.toSimpleHint "Only ints, floats, chars, strings, lists, and tuples are comparable." ]
561+ [ H.toSimpleHint "Only ints, floats, chars, strings, lists, and tuples are comparable."
561− T.Appendable -> [ H.toSimpleHint "Only strings and lists are appendable." ]
562+ ]
566+ T.Type home name _ | T.isInt home name ->
567+ [ H.toFancyHint ["Try","using",H.green"String.fromInt","to","convert","it","to","a","string?"]
570+ T.Type home name _ | T.isFloat home name ->
571+ [ H.toFancyHint ["Try","using",H.green"String.fromFloat","to","convert","it","to","a","string?"]
574+ T.FlexSuper T.Number _ ->
575+ [ H.toFancyHint ["Try","using",H.green"String.fromInt","to","convert","it","to","a","string?"]
579+ [ H.toFancyHint ["Only","strings","and","lists","are","appendable.","Put","it","in",H.green "[]","to","make","it","a","list?"]
562− T.CompAppend -> [ H.toSimpleHint "Only strings and lists are both comparable and appendable." ]
583+ [ H.toSimpleHint "Only strings and lists are both comparable and appendable."
564− [ H.toFancyHint ["Only",H.green "Int","and",H.green "Float","values","work","as","numbers."]
588+ T.Type home name _ | T.isString home name ->
589+ [ H.toFancyHint ["Try","using",H.green"String.toInt","to","convert","it","to","a","number?"]
593+ [ H.toFancyHint ["Only",H.green "Int","and",H.green "Float","values","work","as","numbers."]
568badRigidSuper :: T.Super -> String -> [H.Doc]
597badRigidSuper :: T.Super -> String -> [H.Doc]
569badRigidSuper super aThing =
598badRigidSuper super aThing =
@@ -1282,8 +1311,7 @@ badAppendLeft localizer category tipe expected =
1282 ANumber thing stringFromThing ->
1311 ANumber thing stringFromThing ->
1284 H.fillSep
1313 H.fillSep
1285− ["The","(++)","operator","can","append"
1314+ ["The","(++)","operator","can","append","List","and","String"
1286− ,H.dullyellow "List","and",H.dullyellow "String"
1287 ,"values,","but","not",H.dullyellow thing,"values","like","this:"
1315 ,"values,","but","not",H.dullyellow thing,"values","like","this:"