I have implemented a bit more of this, and uploaded the patch bundle to the issue tracker. You can now define simple binders. ie. a declaration like syntax bind e1 (\x → e2) = x ← e1 ; e2 allows to write the rhs to mean the lhs. http://code.google.com/p/agda/issues/detail?id=306 Cheers, JP.