Might be worth checking out Tidal's Mondo Notation, which while not quite Haskell syntax is far closer to it, being a proper functional style notion, that unifies with mini notation, so no need for wrapping many things in strings.
Looks like this:
mondo`
$ note (c2 # euclid <3 6 3> <8 16>) # *2
# s "sine" # add (note [0 <12 24>]*2)
# dec(sine # range .2 2)
# room .5
# lpf (sine/3 # range 120 400)
# lpenv (rand # range .5 4)
# lpq (perlin # range 5 12 # \* 2)
# dist 1 # fm 4 # fmh 5.01 # fmdecay <.1 .2>
# postgain .6 # delay .1 # clip 5
$ s [bd bd bd bd] # bank tr909 # clip .5
# ply <1 [1 [2 4]]>
$ s oh*4 # press # bank tr909 # speed.8
# dec (<.02 .05>*2 # add (saw/8 # range 0 1)) # color "red"
`
If actual tidal notation is important, that has been worked on, and would look like:
Only the actually implemented functions, and implemented custom operators are available even when that works, so not all tidal code can necessarily be imported.
Thanks for mentioning superdough I hadn’t seen it anywhere while I was playing with all of the above. Piqued my curiosity :)