TODO: - change &= to &&=, |= to ||= - use context (is expecting statement?) in lex to resolve lambda/pipe a -> b