fixed bug with def semantics
Better fix for :def, with syntax adjustment