Index: src/Validate/ReplacePseudoFunc.cpp
===================================================================
--- src/Validate/ReplacePseudoFunc.cpp	(revision ac939461de6b6d92ea54de7526795c26af87d313)
+++ src/Validate/ReplacePseudoFunc.cpp	(revision 367725d425be6bcb501fa6d005c7cb8e01598898)
@@ -17,5 +17,5 @@
 ast::Expr const * ReplacePseudoFuncCore::postvisit( ast::ApplicationExpr const * expr) {
     auto fname = ast::getFunctionName( expr );
-    if ( fname == "posE" ) {
+    if ( fname == "posE" || fname == "valueE" || fname == "labelE" ) {
         // std::cerr << "Found App in ReplacePseudoFunc" << std::endl;
         if ( expr->args.size() != 1 ) {
@@ -35,5 +35,10 @@
         for ( size_t i = 0; i < base->members.size(); i++ ) {
             if ( base->members[i]->name == referredName ) {
-                return ast::ConstantExpr::from_int( expr->location, i );
+                if ( fname == "posE ")
+                    return ast::ConstantExpr::from_int( expr->location, i );
+                else if (fname == "labelE" )
+                    return ast::ConstantExpr::from_string( expr->location, referredName );
+                else
+                    return new ast::TypeExpr( expr->location, argType );
             }
         }
