diff --git a/dotnet/runtime/Metamodel/Representations/P6capture.cs b/dotnet/runtime/Metamodel/Representations/P6capture.cs
index e72c1e8..52f0bfb 100644
--- a/dotnet/runtime/Metamodel/Representations/P6capture.cs
+++ b/dotnet/runtime/Metamodel/Representations/P6capture.cs
@@ -44,8 +44,7 @@ public override RakudoObject type_object_for(RakudoObject MetaPackage)
///
public override RakudoObject instance_of(RakudoObject WHAT)
{
- var Object = new Instance(WHAT.STable);
- return Object;
+ return new Instance(WHAT.STable);
}
///
diff --git a/dotnet/runtime/Metamodel/Representations/P6int.cs b/dotnet/runtime/Metamodel/Representations/P6int.cs
index 36d5e9f..a6ab0ee 100644
--- a/dotnet/runtime/Metamodel/Representations/P6int.cs
+++ b/dotnet/runtime/Metamodel/Representations/P6int.cs
@@ -16,7 +16,8 @@ public sealed class P6int : Representation
///
internal sealed class Instance : RakudoObject
{
- public Nullable Value;
+ public int Value;
+ public bool Undefined;
public Instance(SharedTable STable)
{
this.STable = STable;
@@ -33,8 +34,10 @@ public override RakudoObject type_object_for(RakudoObject MetaPackage)
var STable = new SharedTable();
STable.HOW = MetaPackage;
STable.REPR = this;
- STable.WHAT = new Instance(STable);
- return STable.WHAT;
+ var WHAT = new Instance(STable);
+ WHAT.Undefined = true;
+ STable.WHAT = WHAT;
+ return WHAT;
}
///
@@ -44,9 +47,7 @@ public override RakudoObject type_object_for(RakudoObject MetaPackage)
///
public override RakudoObject instance_of(RakudoObject WHAT)
{
- var Object = new Instance(WHAT.STable);
- Object.Value = 0;
- return Object;
+ return new Instance(WHAT.STable);
}
///
@@ -56,7 +57,7 @@ public override RakudoObject instance_of(RakudoObject WHAT)
///
public override bool defined(RakudoObject Obj)
{
- return ((Instance)Obj).Value.HasValue;
+ return !((Instance)Obj).Undefined;
}
public override RakudoObject get_attribute(RakudoObject Object, RakudoObject ClassHandle, string Name)
@@ -91,7 +92,7 @@ public override void set_int(RakudoObject Object, int Value)
public override int get_int(RakudoObject Object)
{
- return ((Instance)Object).Value.Value;
+ return ((Instance)Object).Value;
}
public override void set_num(RakudoObject Object, double Value)
diff --git a/dotnet/runtime/Metamodel/Representations/P6num.cs b/dotnet/runtime/Metamodel/Representations/P6num.cs
index 08e1ca5..8b87c61 100644
--- a/dotnet/runtime/Metamodel/Representations/P6num.cs
+++ b/dotnet/runtime/Metamodel/Representations/P6num.cs
@@ -16,7 +16,8 @@ public sealed class P6num : Representation
///
internal sealed class Instance : RakudoObject
{
- public Nullable Value;
+ public double Value;
+ public bool Undefined;
public Instance(SharedTable STable)
{
this.STable = STable;
@@ -33,7 +34,9 @@ public override RakudoObject type_object_for(RakudoObject MetaPackage)
var STable = new SharedTable();
STable.HOW = MetaPackage;
STable.REPR = this;
- STable.WHAT = new Instance(STable);
+ var WHAT = new Instance(STable);
+ WHAT.Undefined = true;
+ STable.WHAT = WHAT;
return STable.WHAT;
}
@@ -44,9 +47,7 @@ public override RakudoObject type_object_for(RakudoObject MetaPackage)
///
public override RakudoObject instance_of(RakudoObject WHAT)
{
- var Object = new Instance(WHAT.STable);
- Object.Value = 0.0;
- return Object;
+ return new Instance(WHAT.STable);
}
///
@@ -56,7 +57,7 @@ public override RakudoObject instance_of(RakudoObject WHAT)
///
public override bool defined(RakudoObject Obj)
{
- return ((Instance)Obj).Value.HasValue;
+ return !((Instance)Obj).Undefined;
}
public override RakudoObject get_attribute(RakudoObject Object, RakudoObject ClassHandle, string Name)
@@ -101,7 +102,7 @@ public override void set_num(RakudoObject Object, double Value)
public override double get_num(RakudoObject Object)
{
- return ((Instance)Object).Value.Value;
+ return ((Instance)Object).Value;
}
public override void set_str(RakudoObject Object, string Value)