1. 7
  1.  

  2. 1

    Basically this blog is full of examples showing the algebra of its graph type in detail:

    https://blogs.ncl.ac.uk/andreymokhov/graphs-in-disguise/

    https://blogs.ncl.ac.uk/andreymokhov/graphs-a-la-carte/

    https://blogs.ncl.ac.uk/andreymokhov/an-algebra-of-graphs/

    I find this post very fascinating, since I also have explored a similar graph data type, but ultimately found that my type could only represent weakly connected graphs. See

    http://www.hansdieterhiep.nl/2017/05/21-graph.pdf

    The difference between the my data type and OP’s is as follows, respectively:

    data Graph n = Vertex n | Combine (Graph n) (Graph n)

    cf.

    data Basic a = Empty | Vertex a | Overlay (Basic a) (Basic a) | Connect (Basic a) (Basic a)