That's what we need function declaration syntax for.. The problem is - you may have a correct input type, but still get an error, that has to be communicated in a generic way. For example account_balance(subject::account_id) may return INdeterminate for an invalid account Id or for a failed query. There is no easy way to validate that all account_id used are valid before the evaluation - you would not want to embed any cutom validation logic into your engine, would not you?