We can find all (Haskell) libraries linked against the final executable with:

strings "$(which yeganesh)" | rg '-lHS([A-Aa-z-]+\d+(.\d)*)' -r'$1' --only-matching

which gives:

xdg-basedir-0.2.2
strict-0.4.0.1
these-1.1.1.1
hashable-1.4.0.2
text-1.2.5.0
binary-0.8.9.0
assoc-1.0.2
bifunctors-5.5.1
th-abstraction-0.4.3.0
transformers-compat-0.7.1
indexed-traversable-0.1.2
distributive-0.6.2.1
tagged-0.8.6.1
transformers-0.5.6.2
pretty-1.1.3.6
ghc-boot-th-9.2.1
base-orphans-0.8.6
process-1.6.1
directory-1.3.6.2
unix-2.7.2.2
bytestring-0.1
time-1.1
filepath-1.4.2.1
containers-0.6.5.1
deepseq-1.4.6.0
array-0.5.4.0
base-4.1
ghc-bignum-1.2
ghc-prim-0.8.0

To find what is actually used, we can use Jacinda, viz.

strings $(which yeganesh) | ja '[x ~* 1 /(^[A-Za-z][A-Za-z0-9-]*-\d+(.\d+)*)-[0-9a-f]{64}$/]:? \$0'

which gives:

xdg-basedir-0.2.2
strict-0.4.0.1

Now, the latter does not account for base libraries, but in any case one can see that there are a great many libraries which have to be present at compile time in order for the whole thing to build but which have no effect on the final artifact:

these-1.1.1.1
hashable-1.4.0.2
binary-0.8.9.0
assoc-1.0.2
bifunctors-5.5.1
th-abstraction-0.4.3.0
filepath-1.4.2.1