public SimpleBooleanPropertyHandler(GetBooleanProperty <T> GetValue, SetBooleanProperty <T> SetValue)
     : base((b) => new BooleanPrimitive(GetValue(b)), (b, v) => {
     if (v.GetType() != PrimitiveType.BOOLEAN)
     {
         throw new Exception("Cannot assign non-boolean to this property");
     }
     SetValue(b, (bool)v.GetValue());
 }, new BooleanPrimitive(true)) {
 }
 public SimpleBooleanPropertyHandler(GetBooleanProperty <T> GetValue, SetBooleanProperty <T> SetValue)
     : base((b, p) => new BooleanPrimitive(GetValue(b)), (b, p, v) => {
     SetValue(b, CastBoolean(v).GetTypedValue());
 }, new BooleanPrimitive(true)) {
 }