let lib = import ; # >>=/bind for lists # listBind :: [a] -> (a -> [b]) -> [b] listBind = lib.flip lib.concatMap; dms = ["foo" "bar" "baz"]; vms = ["1" "2" "3"]; in listBind dms (dm: listBind vms (vm: lib.singleton (dm + vm) ) )