@@ -43,10 +43,16 @@ public class PythonTypeSlot {
         /// </summary>
         [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate")]
         internal virtual bool TryGetValue(CodeContext context, object instance, PythonType owner, out object value) {
+            return TryGetValueOverridable(context, instance, owner, out value);
+        }
+
+        public virtual bool TryGetValueOverridable(CodeContext context, object instance, PythonType owner, out object value)
+        {
             value = null;
             return false;
         }
 
+
         /// <summary>
         /// Sets the value of the slot for the given instance.
         /// </summary>
@@ -114,6 +120,14 @@ public class PythonTypeSlot {
         /// </summary>
         internal virtual bool GetAlwaysSucceeds {
             get {
+                return GetAlwaysSucceedsOverridable;
+            }
+        }
+
+        public virtual bool GetAlwaysSucceedsOverridable
+        {
+            get
+            {
                 return false;
             }
         }