Scala, Haskell treat syntax as a chore.
> take 8 $ cycle [1,2,3]
cycleM x = x `mplus` (cycleM x) take 8 $ cycleM [1,2,3]
> take 8 $ cycle [1,2,3]