# [Haskell], <s>84</s> 83 bytes <!-- language-all: lang-hs --> z=zipWith e=[]:e f l=foldr1(z$z(+))$scanr(\_->foldr(zipWith(:))e.map reverse)l"abc" [Try it online!][TIO-jcnhcrlm] Thanks to [totallyhuman](https://codegolf.stackexchange.com/users/68615/totallyhuman) for saving 1 byte! [Haskell]: https://www.haskell.org/ [TIO-jcnhcrlm]: https://tio.run/##bVDBToNAED27XzGSHiBiw8K2lSZ48FpjD5p4QGKxXYRIaQNUW34eYRa7C3UPE3jvzZs3E4fFF0/Tuq68Ktm/JmVMuOcHc04iSL1ol25yqlejSr8xjFGxDrNcf3u/vUdC7zr0uWHw8TbcQ86/eV5wI9XCj7VWH1dFvDukmwe@OoEH@0P5XOaPGWyLT3L1E/Oct58Nk0Rw9LwTlDHPQFsuxhrwtOCgPS1fYLm41gjZhknWKDc7INC8CHyfBgHICQ3AgoBI1gQnMPG3eb5tAhvqqQUmALUU2RlSnViLwRTrDHl2bvERpjZWR9QBCUiCMxjmTxCmSr99sRFqHBxqYww2kQYCcSylziQrulTWVmIL585h1jlfLi2iT0R0gchrNee6Q8yVO4h9wFVVjkIIKzq4YmuFKttSrtzZqqreDGkI0@HlxGY2ahzUMzq4QXsFwagqV/T18lPJi4B/SC@a@78X66uYzNI5ul2ugNS/ "Haskell – Try It Online"