An Abstract Semantics for Inference of Types and Effects in a Multi-Tier Web Language