generalise to integer right-hand side and ?(Var) notation