ban nil as emptylist

The empty list should be written as EmptyList
introduce context expressions to fix argument evaluation