redCmd env (CLet bs c)          = do bs'@(Binds rec te eqs) <- redBinds env bs
                                     if rec then
                                        liftM (CLet bs') (redCmd env c)
                                      else
                                        redBetaC (addArgs env (dom te)) te c (map (lookup' eqs) (dom te))
redCmd env (CLet bs c)          = do bs'@(Binds rec te eqs) <- redBinds env bs
                                     if rec then
                                        liftM (CLet bs') (redCmd env c)
                                      else
                                        redBetaC (addArgs env (dom te)) te c (map (lookup' eqs) (dom te))
redCmd env (CLet bs c)          = do bs'@(Binds rec te eqs) <- redBinds env bs
                                     if rec then
                                        liftM (CLet bs') (redCmd env c)
                                      else
                                        redBetaC (addArgs env (dom te)) te c (map (lookup' eqs) (dom te))