What would the intended result be? Just to get the same number back? Although intuitive, that would violate a fairly important invariant: that (coerce x ty) either errors or returns an object whose type is ty. 0.0? That seems a bit odd. I suppose 'exact->inexact would work.
Hm. I wasn't thinking of it in terms of sub- and super-types, but in that context it makes sense. Thinking this way, if 'int is a subtype of 'num, then (isa 2 'num) should ideally return t; unfortunately it's nil in the present arc. :( I guess we'll just have to chalk arc's handling of types up as a bit of leaky abstraction and leave it be. I'll go push a fix for (coerce 0 'num) to anarki.