で,Haskell は詳しい構文を知らない.あと$ が出てくるとパースできなくなるへたれなので,構文糖を除きまくった苦い Haskell ができあがると予想.
S := def*
def := NAME '=' expr
expr := elem+
elem := NUM | NAME | '(' expr ')' | lambda
lambda := '\\' NAME '->' expr
以上!リスト[1,2] とかも cons 1 ( cons 2 nil ) とかで代用... ってほとんどLispだ