Hi everyone, while I was in bed with some kind of plague last week I made a sort of infographic-like thing for the type class hierarchy. I'd like to submit as a resource in a PR, but I'd like to iterate on the design a bit first here if that's ok.
So, soliciting feedback. Additions, subtractions, modifications. I'm not heavily invested in any part of this, so go nuts. Instead of trying to explain my thought process I'll just let you see if it works or doesn't. If nobody sees any big issues I'll go ahead and do a PR.
✨ PDF Link ✨
This looks fantastic! I am curious, does it require a specific software to maintain this graph going forward?
Yes, it's an OmniGraffle document so someone with a Mac will need to keep it up to date. I'm happy to do this. But if we don't want it as part of the cats doc I can maintain it in my own repo and just put a pointer on the resources page. Either way is fine with me.
I was thinking we could have an associated tut doc that asserts all the arrows in the diagram, which would give some kind of indication when the diagram becomes wrong. It wouldn't catch additions but it would catch inaccuracies in what's there.
It would be great to automate this somehow but I don't know how and don't want to keep users in the dark just for lack of automation. I think this or something like it is needed.
I think you can generate some implicitly[Monad <:< Functor] statements from the diagram's source, which won't typecheck if they're incorrect.
It's great, but I think it should be maintained in some format that doesn't require the purchase of special hardware and software. It's a pretty simple diagram ... can't we use an open format like SVG?
I'll just maintain it on my own website and if someone wants to convert it to SVG or whatever they're welcome to.
I'm sad to see this closed out. An infographic is something that there have been multiple discussions/issues/PRs for over the course of years, and I think that in every case we have been guilty of letting perfect be the enemy of good. I'd be all for incorporating this infographic and over time if we want to add more automation or switch to a more open format, then we are always free to do so.
@tpolecat Would you kindly provide the current file? Omnigraffle Pro can export it to a SVG. I don't have one but I'm sure if we ask the community someone with it will be able to help.
@kailuowang https://github.com/tpolecat/cats-infographic
Thanks!
I will tweet a request for SVG conversion.
@tpolecat do you mind if I copied the SVG file to this PR https://github.com/typelevel/cats/pull/1565?
No, fine with me.
Most helpful comment
I was thinking we could have an associated tut doc that asserts all the arrows in the diagram, which would give some kind of indication when the diagram becomes wrong. It wouldn't catch additions but it would catch inaccuracies in what's there.
It would be great to automate this somehow but I don't know how and don't want to keep users in the dark just for lack of automation. I think this or something like it is needed.