Julia で関数合成マクロをつくる

Julia は便利そうなのですが、Haskell から移ってくるとカッコの数が気になってきます。
せっかく Julia ではマクロが作れるので、関数合成を簡単に書けないかと考えてみました。一気に書くことができなかったので、関数列と引数を与えると合成した結果を返すマクロ @rc を用意し、さらに @compose で無名関数にするという2段構えです。
(もっとスマートな方法があれば教えてください)

macro rc(args ...)
  if length(args) == 1
    :($(args[1]))
  else
    :($(args[1])(@rc($(args[2:end]...))))
  end
end

macro compose(args ...)
  :(x -> @rc($(args ...), x))
end

rc は、recursive compose のつもり。使い方はこんな感じになります。

>>> @rc(asin, sin, 1)  # => 1
>>> @compose(asin, sin)  # =>(generic function with 1 method)
>>> @compose(asin, sin)(1)  # => 1