Haskell implementation of an algorithm described by Richard Dawkins in 'The Blind Watchmaker'