Practical, impure functional language with a two-tier type system