<div dir="ltr"><div>I had an idea whose goal is to ease people into Foldable, Traversable, etc.</div><div>There could be a notation that shows the generalization that is occurring.<br></div><div><br></div><div>map :: Functor [_] => (a -> b) -> [a] -> [b]</div><div><br></div><div>This means that the syntax for the list type is now syntax for the variable created by the Functor constraint.</div><div><br></div><div>Adding such a thing to the language is probably not a good idea, but someone might possibly like such a notation for pedagogy. Of course, it will be pointed out that a Functor is not just a container. But Foldable is sometimes expressed as "anything that toList can be called on", so it should make sense there.</div><div><br></div><div>Greg Weber</div><br></div>