implement LetPat (Issue #22)
Merge branch 'issue22'