try scala def macro at scala documentation