Convert pointfree to pointful
Haskell, 163 142 133 bytes

p(x:r)|[a,b]&lt;-p r=case[x]of&quot;(&quot;-&gt;[&quot;(\\x-&gt;&quot;++a++p b!!0,&quot;&quot;];&quot;.&quot;-&gt;['(':a++&quot;)&quot;,b];&quot;)&quot;-&gt;[&quot; x)&quot;,r];_-&gt;[x:a,b]
p r=[r,r]
f s=p('(':s++&quot;)&quot;)!!0

Try it on Ideone.
Ungolfed:
p('(':r)|(a,b)&lt;-p r = (&quot;(\\x-&gt;&quot;++a++(fst(p b)),&quot;&quot;)
p('.':r)|(a,b)&lt;-p r = ('(':a++&quot;)&quot;,              b)
p(')':r)            = (&quot; x)&quot;,                   r)
p(x  :r)|(a,b)&lt;-p r = (x:a,                     b)
p _                 = (&quot;&quot;,                     &quot;&quot;)

f s=fst(p('(':s++&quot;)&quot;))