rewrite rules: less constructors + some desugarings