iStmt (SWhile exp stm) = do calced <- calcBool exp
                            if calced == BTrue then
                              do e <- iStmt stm
                                 case e of
                                   Null -> iStmt (SWhile exp stm)
                                   e -> return e
                            else
                              return Null
iStmt (SWhile exp stm) = do calced <- calcBool exp
                            if calced == BTrue then
                              do e <- iStmt stm
                                 case e of
                                   Null -> iStmt (SWhile exp stm)
                                   e -> return e
                            else
                              return Null
iStmt (SWhile exp stm) = do calced <- calcBool exp
                            if calced == BTrue then
                              do e <- iStmt stm
                                 case e of
                                   Null -> iStmt (SWhile exp stm)
                                   e -> return e
                            else
                              return Null