let now uses patterns, also trying to repurpose':=' as var assignment returning own value
nested pattern assignment fix eg let (a,(b,c),d)=x. it was mistakenly doing (a(b,c),d)