todo: partial expr