-- Let's test it:

-- testDescArg = equal (typ :>: (fromRight $ withTac, orig)) (B0,3)
--     where x = N (P ([("",0)] := DECL :<: SET))
--           y = N (P ([("",1)] := DECL :<: ARR x desc))
--           z = N (P ([("",2)] := DECL :<: SET))
--           typ = SET
--           withTac = opRun descOp [ARG x y, z]
--           orig = argDescRun x y z

-- Ind is supposed to build this term:

indDescRun x y z = TIMES (ARR x z) (descOp @@ [y,z])
indDescRun x y z = TIMES (ARR x z) (descOp @@ [y,z])
indDescRun x y z = TIMES (ARR x z) (descOp @@ [y,z])