Нет общего способа объединить выражения в любую цитату в стиле без точек, но этот конкретный случай может быть реализован так:
composeQ :: ExpQ -> ExpQ -> ExpQ
composeQ = flip infixApp [|(.)|]
Здесь было выполнено обратное отображение infixApp
, которое обычно принимает параметры порядка left op right
в op left right
и затем снабжает его оператором композиции. Теперь у нас есть функция без точек, которая эквивалентна оригинальной composeQ
.