derp, my bad
https://github.com/wellposed/numerical/blob/master/src/Numerical/Nat.hs has a fuller implementation of this though, that i've been using for a few months

as for the plugin question, i think about adding constraint solves to the type system... so i dont know if thats quite what you want though, 

On Sat, Oct 25, 2014 at 2:33 PM, Barney Hilken <b.hilken@ntlworld.com> wrote:
>
> because you haven't helped write a patch change it yet :)
>
> -Carter
>

Would this be possible with the new type checker plugins?

btw, your example gives me

    Nested type family application
      in the type family application: U (n - 1)
    (Use UndecidableInstances to permit this)
    In the equations for closed type family ‘U’
    In the type family declaration for ‘U’
Failed, modules loaded: none.