I'm having trouble finding a detailed history of Clean, but I believe it predates Haskell. My understanding is that Miranda prompted a handful of lazy, pure functional languages. Haskell was an attempt to unify them. In Coders at Work, SPJ mentions that a few of those implementors were not interested in participating with the Haskell group. Is Clean one of those languages? (Of course, that doesn't mean they haven't influenced each other over the years, what I'm trying to suggest is that maybe an edge belongs from Miranda to Clean as well.)
Lexically scoped closures are from Scheme* and virtually all modern languages have them now. (Well, C++ and Java are late on the lambda boat, but C++11 and it seems Java 8 are getting them.) That's a huge influence.
* Scheme was the first Lisp to gain lexical scope, and C of course has lexical scope but not closures, but what's the full history here? It's also part of the lambda calculus.
In two respects:
* the view patterns syntax was built to enable bit level parsing, inspired by the Erlang support (I wrote the binary library to emulate Erlang support for IP header parsing).
* Cloud Haskell
See e.g. for Haskell, originally as http://www.haskell.org/pipermail/haskell-cafe/2010-February/... and now as http://www.haskell.org/wikiupload/6/65/HIW2011-Talk-Tibell.p...
However, your graph will be much more complicated if libraries are allowed to influence each other, rather than strictly considering language features.
This walks a thin line for sure and in Scala the line is almost microscopic. I'll keep it for now since my reasoning was the same as the Erlang->Scala influence. A core language library that is rarely viewed as other than a core feature.
The nice one about this graph is that it is relatively complete.
I mean, from the ones shown, it's sort of obvious, but I'm thinking in general. Also, Common Lisp, Racket, and Clojure are different enough that they count as separate languages in their own right, rather than 'variations', which a dotted line might imply.
How about: If you program in it using s-expressions, it’s a Lisp.
Now, you might argue that means Logo is not a Lisp, but it is actually extremely similar to basic Scheme. You could turn an interpreter for one into an interpreter for the other with mostly minor tweaks. It's also a dialect of Lisp historically.
I'm not sure there is such a thing as a "Lisp." If you mean S-expression language, just say s-expression language. Wedging in Lisp as a substitute conflates the issue.
Qi is interesting but the development community is much smaller than its competitors (mainly Haskell). You probably want to look into Shen, not Qi. Qi development has mostly stalled.
That's where you are wrong. Partial functions introduce the bottom value and then you can 'prove' arbitrary incorrect things.
(As far as I know. I've only worked through Pierce's book.)
Cf. D. Nolen's fantastic work in this field