eqBox (Case _ t bs,s) (Case _ t' bs',s') =
    do eqBox (t,s) (t',s')
       zipWithM_ (\ (l,t'') (l',t''') ->
                      if l==l' then eqBox (t'',s) (t''',s')
                      else fail "eqBox case") bs bs'
eqBox (Case _ t bs,s) (Case _ t' bs',s') =
    do eqBox (t,s) (t',s')
       zipWithM_ (\ (l,t'') (l',t''') ->
                      if l==l' then eqBox (t'',s) (t''',s')
                      else fail "eqBox case") bs bs'
eqBox (Case _ t bs,s) (Case _ t' bs',s') =
    do eqBox (t,s) (t',s')
       zipWithM_ (\ (l,t'') (l',t''') ->
                      if l==l' then eqBox (t'',s) (t''',s')
                      else fail "eqBox case") bs bs'