Hm... yes, you're right. Odd, I remember it working fine when I tested it earlier. This should work correctly:
(mac require (n (o t))
`(if (no ,n) (err:string "parameter " ',n " is required")
(and ,t (no:isa ,n ,t)) (err:string "parameter " ',n " must be of type " ,t)))