[use proper data constructor when constructing constant values in PrimitiveOperators
John Meacham <john@repetae.net>**20060428020240] hunk ./data/PrimitiveOperators-in.hs 159
-prim_number v t et@(ELit (LitCons cn' _ _)) = ELit (LitCons cn [ELit (LitInt v (rawType t))] et) where
-    cn = toName DataConstructor $ nameName cn'
-prim_number _ _ _ = error "prim_number: invalid arg"
+prim_number cn v t et = ELit (LitCons cn [ELit (LitInt v t)] et) where
+--    cn = toName DataConstructor $ nameName cn'
+prim_number _ _ _ _ = error "prim_number: invalid arg"
hunk ./data/PrimitiveOperators-in.hs 164
-prim_const s t et@(ELit (LitCons cn' _ _)) =  eStrictLet (tVr 2 st) (EPrim (APrim (CConst s t) mempty) [] st) (ELit (LitCons cn [EVar $ tVr 2 st] et)) where
-    st = rawType t
-    cn = toName DataConstructor $ nameName cn'
-prim_const _ _ _ = error "prim_const: invalid arg"
+--prim_const cn s st et = eStrictLet (tVr 2 st) (EPrim (APrim (CConst s t) mempty) [] st) (ELit (LitCons cn [EVar $ tVr 2 st] et)) where
+prim_const cn s st t et = ELit (LitCons cn [(EPrim (APrim (CConst s t) mempty) [] st)] et)
+prim_const _ _ _ _ _ = error "prim_const: invalid arg"
hunk ./utils/op_process.prl 48
-sub const($$@) {
-    my ($v,$t,$ct) = @_;
-    $ct ||= "\"int\"";
-    if ($v =~ /^\d/) {
-        return "prim_number $v $ct $t";
+sub const($$$@) {
+    my ($cn,$v,$t,$ct) = @_;
+    $ct ||= "int";
+    my $ctn = $ct;
+    $ctn =~ s/\W/_/g;
hunk ./utils/op_process.prl 54
-        #return "ELit (LitInt $v $t)";
+    if ($v =~ /^\d/) {
+        return "prim_number $cn $v r_$ctn $t";
hunk ./utils/op_process.prl 57
-        #return "EPrim \"prim_const.$v\" [] $t"
-        #return "EPrim (primPrim \"prim_const.$v\") [] $t"
-        return "prim_const \"$v\" $ct $t";
+        return "prim_const $cn \"$v\" r_$ctn \"$ct\" $t";
hunk ./utils/op_process.prl 122
+    my $rtype = rtype($d->[1]);
hunk ./utils/op_process.prl 136
-    push @cmeth, "($prelude_bounded, toInstName \"Prelude.maxBound.$d->[0]\", " . const($d->[3],$t,"\"$d->[1]\"") . ")";
-    push @cmeth, "($prelude_bounded, toInstName \"Prelude.minBound.$d->[0]\", " . const($d->[4],$t,"\"$d->[1]\"") . ")";
+    push @cmeth, "($prelude_bounded, toInstName \"Prelude.maxBound.$d->[0]\", " . const($cncons, $d->[3],$t,"$d->[1]") . ")";
+    push @cmeth, "($prelude_bounded, toInstName \"Prelude.minBound.$d->[0]\", " . const($cncons,$d->[4],$t,"$d->[1]") . ")";
hunk ./utils/op_process.prl 141
-    my $rtype = rtype($d->[1]);