("-0.2") — Decimal.parse "-0.2" = some { toUInt64 := 2000 } but a leading '-' must yield a non-positive decimal


("-0.469") — Decimal.parse "-0.469" = some { toUInt64 := 4690 } but a leading '-' must yield a non-positive decimal


("-0.6") — Decimal.parse "-0.6" = some { toUInt64 := 6000 } but a leading '-' must yield a non-positive decimal


("-0.466") — Decimal.parse "-0.466" = some { toUInt64 := 4660 } but a leading '-' must yield a non-positive decimal


("-0.1_33") — Decimal.parse "-0.1_33" = some { toUInt64 := 18446744073709551483 } but underscores are disallowed


("-5_0.2") — Decimal.parse "-5_0.2" = some { toUInt64 := 18446744073709049616 } but underscores are disallowed


("0.9_8") — Decimal.parse "0.9_8" = some { toUInt64 := 980 } but underscores are disallowed


("-3_83.7") — Decimal.parse "-3_83.7" = some { toUInt64 := 18446744073705714616 } but underscores are disallowed


("5.70_4") — Decimal.parse "5.70_4" = some { toUInt64 := 50704 } but underscores are disallowed


("6_5.3_6") — Decimal.parse "6_5.3_6" = some { toUInt64 := 650360 } but underscores are disallowed


("0_30.532") — Decimal.parse "0_30.532" = some { toUInt64 := 305320 } but underscores are disallowed


("-54_3.91") — Decimal.parse "-54_3.91" = some { toUInt64 := 18446744073704112516 } but underscores are disallowed


("\"311/2b") — encodeString("\"311/2b") wrapped to "\"\"311/2b\"" has 3 '"' (odd; malformed SMT)


({ ets := Cedar.Data.Map.mk
           [({ id := "Action", path := [] },
             Cedar.Validation.EntitySchemaEntry.standard
               { ancestors := Cedar.Data.Set.mk [{ id := "Action", path := [] }],
                 attrs := Cedar.Data.Map.mk
                            [("age",
                              Cedar.Validation.Qualified.required
                                (Cedar.Validation.CedarType.bool (Cedar.Validation.BoolType.tt)))],
                 tags := none }),
            ({ id := "Album", path := [] },
             Cedar.Validation.EntitySchemaEntry.standard
               { ancestors := Cedar.Data.Set.mk [],
                 attrs := Cedar.Data.Map.mk
                            [("flag",
                              Cedar.Validation.Qualified.required
                                (Cedar.Validation.CedarType.entity { id := "Photo", path := [] }))],
                 tags := none }),
            ({ id := "Photo", path := [] }, Cedar.Validation.EntitySchemaEntry.enum (Cedar.Data.Set.mk ["p1"]))],
  acts := Cedar.Data.Map.mk
            [({ ty := { id := "User", path := [] }, eid := "z" },
              { appliesToPrincipal := Cedar.Data.Set.mk [{ id := "Photo", path := [] }, { id := "User", path := [] }],
                appliesToResource := Cedar.Data.Set.mk
                                       [{ id := "Action", path := [] },
                                        { id := "Album", path := [] },
                                        { id := "User", path := [] }],
                ancestors := Cedar.Data.Set.mk [],
                context := Cedar.Data.Map.mk
                             [("age", Cedar.Validation.Qualified.required (Cedar.Validation.CedarType.string))] })] }) — Schema.validateWellFormed passed but entity type Action has an unlifted (singleton-bool) attribute


(([], { ty := { id := "Album", path := [] }, eid := "z" })) — defineEntity for non-member z returned "U_enc_m0" instead of throwing (members: [])


(([], { ty := { id := "Action", path := [] }, eid := "bob" })) — defineEntity for non-member bob returned "U_enc_m0" instead of throwing (members: [])


(([], { ty := { id := "Photo", path := [] }, eid := "b" })) — defineEntity for non-member b returned "U_enc_m0" instead of throwing (members: [])


(([], { ty := { id := "User", path := [] }, eid := "view" })) — defineEntity for non-member view returned "U_enc_m0" instead of throwing (members: [])


(([], { ty := { id := "Photo", path := [] }, eid := "a" })) — defineEntity for non-member a returned "U_enc_m0" instead of throwing (members: [])


(([], { ty := { id := "Photo", path := [] }, eid := "z" })) — defineEntity for non-member z returned "U_enc_m0" instead of throwing (members: [])


(([], { ty := { id := "Photo", path := [] }, eid := "y" })) — defineEntity for non-member y returned "U_enc_m0" instead of throwing (members: [])


(([], { ty := { id := "Photo", path := [] }, eid := "view" })) — defineEntity for non-member view returned "U_enc_m0" instead of throwing (members: [])


(([], { ty := { id := "Action", path := [] }, eid := "a" })) — defineEntity for non-member a returned "U_enc_m0" instead of throwing (members: [])


(([], { ty := { id := "User", path := [] }, eid := "y" })) — defineEntity for non-member y returned "U_enc_m0" instead of throwing (members: [])


(([{ id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "User", path := [] }
                       { ty := { id := "Foo", path := [] }, eid := "b" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Photo", path := [] }
                         { ty := { id := "Foo", path := [] }, eid := "b" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "name") }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "ghost" }),
    condition := [] }],
 { ets := Cedar.Data.Map.mk
            [({ id := "Photo", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [], attrs := Cedar.Data.Map.mk [], tags := none }),
             ({ id := "User", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [{ id := "Foo", path := [] }, { id := "User", path := [] }],
                  attrs := Cedar.Data.Map.mk [],
                  tags := some (Cedar.Validation.CedarType.string) })],
   acts := Cedar.Data.Map.mk
             [({ ty := { id := "Action", path := [] }, eid := "edit" },
               { appliesToPrincipal := Cedar.Data.Set.mk
                                         [{ id := "Action", path := [] },
                                          { id := "Album", path := [] },
                                          { id := "Foo", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [],
                 ancestors := Cedar.Data.Set.mk
                                [{ ty := { id := "Foo", path := [] }, eid := "x" },
                                 { ty := { id := "Foo", path := [] }, eid := "y" }],
                 context := Cedar.Data.Map.mk [] }),
              ({ ty := { id := "Foo", path := [] }, eid := "b" },
               { appliesToPrincipal := Cedar.Data.Set.mk [{ id := "Action", path := [] }, { id := "User", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [],
                 ancestors := Cedar.Data.Set.mk
                                [{ ty := { id := "Album", path := [] }, eid := "bob" },
                                 { ty := { id := "User", path := [] }, eid := "a" },
                                 { ty := { id := "User", path := [] }, eid := "bob" }],
                 context := Cedar.Data.Map.mk [] }),
              ({ ty := { id := "User", path := [] }, eid := "b" },
               { appliesToPrincipal := Cedar.Data.Set.mk [{ id := "Action", path := [] }, { id := "Foo", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [{ id := "Action", path := [] }],
                 ancestors := Cedar.Data.Set.mk
                                [{ ty := { id := "Photo", path := [] }, eid := "alice" },
                                 { ty := { id := "User", path := [] }, eid := "p1" }],
                 context := Cedar.Data.Map.mk [] })] },
 4)) — validateWithLevel rejected policy p0 with .levelError — the level checker rejected an entity-access expression it should have allowed


(([{ id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Album", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Photo", path := [] }, eid := "b" },
                      { ty := { id := "Photo", path := [] }, eid := "x" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "p1" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "User", path := [] }, eid := "a" },
                      { ty := { id := "User", path := [] }, eid := "p1" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.and
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.action))
                              (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 8 })) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "x" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Action", path := [] }
                         { ty := { id := "Photo", path := [] }, eid := "a" }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Action", path := [] }, eid := "view" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Foo", path := [] }, eid := "ghost" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "bob" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.eq)
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool false))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "name")))
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 73 }))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 60 }))) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Foo", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "y" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.lit
                              (Cedar.Spec.Prim.entityUID { ty := { id := "User", path := [] }, eid := "a" }) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Foo", path := [] }, eid := "bob" },
                      { ty := { id := "Action", path := [] }, eid := "a" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Album", path := [] }
                         { ty := { id := "Action", path := [] }, eid := "p1" }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Foo", path := [] }, eid := "edit" },
                      { ty := { id := "Foo", path := [] }, eid := "b" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Action", path := [] }, eid := "x" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.mem)
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.context))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool true)))
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 97 }))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal))) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "a" }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Photo", path := [] }
                          { ty := { id := "User", path := [] }, eid := "a" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "ghost" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "age") }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "a" }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "User", path := [] }, eid := "edit" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "a" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "x" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "y" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.and
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.eq)
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.context))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "owner")))
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.context)) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Photo", path := [] }, eid := "a" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "User", path := [] }, eid := "z" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.action)))
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.lit
                                  (Cedar.Spec.Prim.entityUID { ty := { id := "User", path := [] }, eid := "a" }))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool true))) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "z" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "x" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Album", path := [] }, eid := "y" },
                      { ty := { id := "Action", path := [] }, eid := "b" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.and
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.context))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.action)))
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.less)
                                (Cedar.Spec.Expr.lit
                                  (Cedar.Spec.Prim.entityUID { ty := { id := "Action", path := [] }, eid := "x" }))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "p1" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Action", path := [] }, eid := "b" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless, body := Cedar.Spec.Expr.var (Cedar.Spec.Var.action) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Photo", path := [] }, eid := "a" },
                      { ty := { id := "Action", path := [] }, eid := "z" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "User", path := [] }, eid := "y" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.is { id := "Album", path := [] }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Foo", path := [] }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Foo", path := [] }
                         { ty := { id := "Photo", path := [] }, eid := "a" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.and
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.action))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool false)))
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource)) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "User", path := [] }
                         { ty := { id := "Action", path := [] }, eid := "a" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.and
                              (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "flag"))
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.less)
                                (Cedar.Spec.Expr.lit
                                  (Cedar.Spec.Prim.entityUID { ty := { id := "Photo", path := [] }, eid := "a" }))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool false))) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Album", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.mem { ty := { id := "Photo", path := [] }, eid := "alice" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Photo", path := [] }, eid := "p1" }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Photo", path := [] }
                          { ty := { id := "Photo", path := [] }, eid := "view" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool false) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Action", path := [] }
                          { ty := { id := "Photo", path := [] }, eid := "alice" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "z" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Photo", path := [] }, eid := "bob" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "owner"))
                              (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "name")) }] }],
 { ets := Cedar.Data.Map.mk
            [({ id := "Photo", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [{ id := "Album", path := [] }, { id := "Photo", path := [] }],
                  attrs := Cedar.Data.Map.mk
                             [("flag",
                               Cedar.Validation.Qualified.optional
                                 (Cedar.Validation.CedarType.ext (Cedar.Validation.ExtType.ipAddr)))],
                  tags := some (Cedar.Validation.CedarType.entity { id := "User", path := [] }) })],
   acts := Cedar.Data.Map.mk
             [({ ty := { id := "Action", path := [] }, eid := "edit" },
               { appliesToPrincipal := Cedar.Data.Set.mk [],
                 appliesToResource := Cedar.Data.Set.mk
                                        [{ id := "Album", path := [] },
                                         { id := "Foo", path := [] },
                                         { id := "Photo", path := [] }],
                 ancestors := Cedar.Data.Set.mk
                                [{ ty := { id := "Foo", path := [] }, eid := "a" },
                                 { ty := { id := "Photo", path := [] }, eid := "alice" }],
                 context := Cedar.Data.Map.mk [] }),
              ({ ty := { id := "Album", path := [] }, eid := "ghost" },
               { appliesToPrincipal := Cedar.Data.Set.mk [{ id := "Album", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [{ id := "User", path := [] }],
                 ancestors := Cedar.Data.Set.mk
                                [{ ty := { id := "Action", path := [] }, eid := "y" },
                                 { ty := { id := "Foo", path := [] }, eid := "bob" },
                                 { ty := { id := "Photo", path := [] }, eid := "a" }],
                 context := Cedar.Data.Map.mk
                              [("flag", Cedar.Validation.Qualified.optional (Cedar.Validation.CedarType.int)),
                               ("owner",
                                Cedar.Validation.Qualified.optional
                                  (Cedar.Validation.CedarType.entity { id := "Album", path := [] }))] }),
              ({ ty := { id := "Photo", path := [] }, eid := "z" },
               { appliesToPrincipal := Cedar.Data.Set.mk [{ id := "Photo", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk
                                        [{ id := "Action", path := [] },
                                         { id := "Foo", path := [] },
                                         { id := "Photo", path := [] }],
                 ancestors := Cedar.Data.Set.mk
                                [{ ty := { id := "Action", path := [] }, eid := "ghost" },
                                 { ty := { id := "Foo", path := [] }, eid := "alice" },
                                 { ty := { id := "User", path := [] }, eid := "ghost" }],
                 context := Cedar.Data.Map.mk
                              [("age",
                                Cedar.Validation.Qualified.required
                                  (Cedar.Validation.CedarType.entity { id := "Album", path := [] })),
                               ("flag",
                                Cedar.Validation.Qualified.required
                                  (Cedar.Validation.CedarType.ext (Cedar.Validation.ExtType.ipAddr)))] })] },
 8)) — validateWithLevel rejected policy p1 with .levelError — the level checker rejected an entity-access expression it should have allowed


(([{ id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "view" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Album", path := [] }, eid := "x" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Photo", path := [] }
                         { ty := { id := "Album", path := [] }, eid := "bob" }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "alice" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "a" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Album", path := [] }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Photo", path := [] }, eid := "edit" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal))
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.mem)
                                (Cedar.Spec.Expr.lit
                                  (Cedar.Spec.Prim.entityUID { ty := { id := "User", path := [] }, eid := "a" }))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool true))) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Album", path := [] }
                          { ty := { id := "Foo", path := [] }, eid := "ghost" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "age") }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Photo", path := [] }, eid := "a" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "User", path := [] }, eid := "bob" },
                      { ty := { id := "Foo", path := [] }, eid := "a" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "bob" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "p1" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "User", path := [] }
                         { ty := { id := "Photo", path := [] }, eid := "a" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.and
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal))
                                (Cedar.Spec.Expr.lit
                                  (Cedar.Spec.Prim.entityUID { ty := { id := "Album", path := [] }, eid := "bob" })))
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.context))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 44 }))) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Photo", path := [] }
                          { ty := { id := "User", path := [] }, eid := "edit" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "User", path := [] }, eid := "z" },
                      { ty := { id := "Action", path := [] }, eid := "y" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Action", path := [] }
                         { ty := { id := "User", path := [] }, eid := "p1" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool true))
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "owner"))
                                (Cedar.Spec.Expr.lit
                                  (Cedar.Spec.Prim.entityUID
                                    { ty := { id := "User", path := [] }, eid := "edit" }))) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.mem { ty := { id := "User", path := [] }, eid := "a" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "x" }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Photo", path := [] }, eid := "a" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Foo", path := [] }, eid := "ghost" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Album", path := [] }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "x" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.eq)
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.action))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "flag")))
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal)) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Album", path := [] }, eid := "a" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "view" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Album", path := [] }, eid := "bob" }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Photo", path := [] }
                          { ty := { id := "Foo", path := [] }, eid := "alice" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "User", path := [] }
                       { ty := { id := "Photo", path := [] }, eid := "view" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Foo", path := [] }
                         { ty := { id := "Photo", path := [] }, eid := "y" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.eq)
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.less)
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool true))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool false)))
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Action", path := [] }, eid := "z" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Photo", path := [] }
                         { ty := { id := "Album", path := [] }, eid := "p1" }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Foo", path := [] }, eid := "a" },
                      { ty := { id := "Photo", path := [] }, eid := "view" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "p1" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.lit
                              (Cedar.Spec.Prim.entityUID { ty := { id := "Album", path := [] }, eid := "edit" }) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "z" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "z" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.and
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.action))
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal)) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Photo", path := [] }, eid := "view" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "z" }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "a" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "User", path := [] }, eid := "p1" }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "Foo", path := [] }
                       { ty := { id := "Photo", path := [] }, eid := "view" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "User", path := [] }
                         { ty := { id := "Photo", path := [] }, eid := "y" }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "User", path := [] }
                          { ty := { id := "Photo", path := [] }, eid := "a" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "Photo", path := [] }
                       { ty := { id := "Foo", path := [] }, eid := "a" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Action", path := [] }, eid := "b" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Foo", path := [] }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.less)
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.mem)
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 54 }))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "name")))
                              (Cedar.Spec.Expr.binaryApp
                                (Cedar.Spec.BinaryOp.eq)
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.action))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Album", path := [] }, eid := "a" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Action", path := [] }, eid := "y" }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "User", path := [] }
                          { ty := { id := "Photo", path := [] }, eid := "x" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.mem { ty := { id := "Album", path := [] }, eid := "z" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.less)
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 21 }))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool false)))
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.context))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "name"))) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Album", path := [] }, eid := "p1" },
                      { ty := { id := "Album", path := [] }, eid := "edit" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "b" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "age"))
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.action))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "age"))) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "a" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Album", path := [] }, eid := "bob" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.lit
                              (Cedar.Spec.Prim.entityUID { ty := { id := "Photo", path := [] }, eid := "p1" }) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "y" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Photo", path := [] }, eid := "alice" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.and
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "name"))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "ghost" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Album", path := [] }, eid := "alice" },
                      { ty := { id := "Foo", path := [] }, eid := "z" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Action", path := [] }
                         { ty := { id := "Action", path := [] }, eid := "a" }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.is { id := "Foo", path := [] }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "User", path := [] }
                         { ty := { id := "Album", path := [] }, eid := "ghost" }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "User", path := [] }
                          { ty := { id := "Foo", path := [] }, eid := "view" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "User", path := [] }
                         { ty := { id := "Album", path := [] }, eid := "p1" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.var (Cedar.Spec.Var.principal) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "edit" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "Action", path := [] }
                       { ty := { id := "Foo", path := [] }, eid := "edit" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Photo", path := [] }, eid := "ghost" }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Action", path := [] }, eid := "a" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.action))
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool true))) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.mem { ty := { id := "User", path := [] }, eid := "a" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Foo", path := [] }
                         { ty := { id := "User", path := [] }, eid := "a" }),
    condition := [] }],
 { ets := Cedar.Data.Map.mk
            [({ id := "Action", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [{ id := "Action", path := [] }, { id := "User", path := [] }],
                  attrs := Cedar.Data.Map.mk
                             [("age",
                               Cedar.Validation.Qualified.optional
                                 (Cedar.Validation.CedarType.ext (Cedar.Validation.ExtType.decimal)))],
                  tags := some (Cedar.Validation.CedarType.int) }),
             ({ id := "Album", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [{ id := "Album", path := [] }],
                  attrs := Cedar.Data.Map.mk [],
                  tags := none }),
             ({ id := "Photo", path := [] }, Cedar.Validation.EntitySchemaEntry.enum (Cedar.Data.Set.mk ["x"]))],
   acts := Cedar.Data.Map.mk
             [({ ty := { id := "Action", path := [] }, eid := "a" },
               { appliesToPrincipal := Cedar.Data.Set.mk [{ id := "Action", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [{ id := "Foo", path := [] }, { id := "Photo", path := [] }],
                 ancestors := Cedar.Data.Set.mk [],
                 context := Cedar.Data.Map.mk [] }),
              ({ ty := { id := "Action", path := [] }, eid := "y" },
               { appliesToPrincipal := Cedar.Data.Set.mk
                                         [{ id := "Album", path := [] },
                                          { id := "Photo", path := [] },
                                          { id := "User", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [{ id := "Album", path := [] }, { id := "Foo", path := [] }],
                 ancestors := Cedar.Data.Set.mk [{ ty := { id := "Foo", path := [] }, eid := "a" }],
                 context := Cedar.Data.Map.mk
                              [("flag",
                                Cedar.Validation.Qualified.required
                                  (Cedar.Validation.CedarType.bool (Cedar.Validation.BoolType.ff))),
                               ("owner",
                                Cedar.Validation.Qualified.optional
                                  (Cedar.Validation.CedarType.ext (Cedar.Validation.ExtType.datetime)))] }),
              ({ ty := { id := "Foo", path := [] }, eid := "a" },
               { appliesToPrincipal := Cedar.Data.Set.mk [{ id := "Action", path := [] }, { id := "Foo", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [{ id := "Album", path := [] }],
                 ancestors := Cedar.Data.Set.mk
                                [{ ty := { id := "Album", path := [] }, eid := "z" },
                                 { ty := { id := "User", path := [] }, eid := "view" }],
                 context := Cedar.Data.Map.mk [] })] },
 19)) — validateWithLevel rejected policy p0 with .levelError — the level checker rejected an entity-access expression it should have allowed


(([{ id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Photo", path := [] }, eid := "view" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Photo", path := [] }
                         { ty := { id := "Photo", path := [] }, eid := "z" }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Foo", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Photo", path := [] }
                         { ty := { id := "User", path := [] }, eid := "view" }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "alice" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.mem { ty := { id := "User", path := [] }, eid := "a" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "ghost" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.context))
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal)) }] }],
 { ets := Cedar.Data.Map.mk
            [({ id := "Action", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [{ id := "Album", path := [] }, { id := "User", path := [] }],
                  attrs := Cedar.Data.Map.mk
                             [("owner",
                               Cedar.Validation.Qualified.optional
                                 (Cedar.Validation.CedarType.ext (Cedar.Validation.ExtType.datetime)))],
                  tags := none }),
             ({ id := "Album", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [],
                  attrs := Cedar.Data.Map.mk [],
                  tags := some (Cedar.Validation.CedarType.int) }),
             ({ id := "Photo", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [], attrs := Cedar.Data.Map.mk [], tags := none })],
   acts := Cedar.Data.Map.mk
             [({ ty := { id := "Album", path := [] }, eid := "a" },
               { appliesToPrincipal := Cedar.Data.Set.mk [{ id := "Foo", path := [] }, { id := "User", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [{ id := "Album", path := [] }, { id := "Foo", path := [] }],
                 ancestors := Cedar.Data.Set.mk
                                [{ ty := { id := "Action", path := [] }, eid := "alice" },
                                 { ty := { id := "Foo", path := [] }, eid := "edit" }],
                 context := Cedar.Data.Map.mk
                              [("age",
                                Cedar.Validation.Qualified.required
                                  (Cedar.Validation.CedarType.bool (Cedar.Validation.BoolType.tt)))] }),
              ({ ty := { id := "Foo", path := [] }, eid := "view" },
               { appliesToPrincipal := Cedar.Data.Set.mk [{ id := "Foo", path := [] }, { id := "User", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [{ id := "Album", path := [] }, { id := "Foo", path := [] }],
                 ancestors := Cedar.Data.Set.mk
                                [{ ty := { id := "Photo", path := [] }, eid := "y" },
                                 { ty := { id := "Photo", path := [] }, eid := "z" },
                                 { ty := { id := "User", path := [] }, eid := "alice" }],
                 context := Cedar.Data.Map.mk [] }),
              ({ ty := { id := "User", path := [] }, eid := "view" },
               { appliesToPrincipal := Cedar.Data.Set.mk [{ id := "Album", path := [] }, { id := "Foo", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [],
                 ancestors := Cedar.Data.Set.mk [{ ty := { id := "Photo", path := [] }, eid := "ghost" }],
                 context := Cedar.Data.Map.mk
                              [("age",
                                Cedar.Validation.Qualified.required
                                  (Cedar.Validation.CedarType.bool (Cedar.Validation.BoolType.ff)))] })] },
 0)) — validateWithLevel rejected policy p2 with .levelError — the level checker rejected an entity-access expression it should have allowed


(([{ id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "User", path := [] }, eid := "p1" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Foo", path := [] }, eid := "y" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "User", path := [] }
                         { ty := { id := "Action", path := [] }, eid := "a" }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "ghost" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.less)
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal))
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.action)) }] }],
 { ets := Cedar.Data.Map.mk
            [({ id := "Action", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [{ id := "Foo", path := [] }],
                  attrs := Cedar.Data.Map.mk
                             [("flag",
                               Cedar.Validation.Qualified.optional
                                 (Cedar.Validation.CedarType.bool (Cedar.Validation.BoolType.tt))),
                              ("owner",
                               Cedar.Validation.Qualified.optional
                                 (Cedar.Validation.CedarType.ext (Cedar.Validation.ExtType.ipAddr)))],
                  tags := none }),
             ({ id := "Foo", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [],
                  attrs := Cedar.Data.Map.mk
                             [("name", Cedar.Validation.Qualified.required (Cedar.Validation.CedarType.int)),
                              ("owner",
                               Cedar.Validation.Qualified.optional
                                 (Cedar.Validation.CedarType.entity { id := "Action", path := [] }))],
                  tags := some (Cedar.Validation.CedarType.entity { id := "Action", path := [] }) }),
             ({ id := "User", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [{ id := "Foo", path := [] }],
                  attrs := Cedar.Data.Map.mk
                             [("age", Cedar.Validation.Qualified.required (Cedar.Validation.CedarType.string))],
                  tags := some (Cedar.Validation.CedarType.int) })],
   acts := Cedar.Data.Map.mk
             [({ ty := { id := "Album", path := [] }, eid := "z" },
               { appliesToPrincipal := Cedar.Data.Set.mk [{ id := "Album", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [],
                 ancestors := Cedar.Data.Set.mk [{ ty := { id := "Action", path := [] }, eid := "x" }],
                 context := Cedar.Data.Map.mk
                              [("flag", Cedar.Validation.Qualified.optional (Cedar.Validation.CedarType.string))] }),
              ({ ty := { id := "Foo", path := [] }, eid := "view" },
               { appliesToPrincipal := Cedar.Data.Set.mk [{ id := "Foo", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [{ id := "Action", path := [] }],
                 ancestors := Cedar.Data.Set.mk
                                [{ ty := { id := "Action", path := [] }, eid := "alice" },
                                 { ty := { id := "Photo", path := [] }, eid := "b" },
                                 { ty := { id := "Photo", path := [] }, eid := "x" }],
                 context := Cedar.Data.Map.mk
                              [("owner", Cedar.Validation.Qualified.required (Cedar.Validation.CedarType.int))] }),
              ({ ty := { id := "Photo", path := [] }, eid := "alice" },
               { appliesToPrincipal := Cedar.Data.Set.mk [{ id := "User", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [{ id := "Action", path := [] }, { id := "User", path := [] }],
                 ancestors := Cedar.Data.Set.mk
                                [{ ty := { id := "Action", path := [] }, eid := "ghost" },
                                 { ty := { id := "Album", path := [] }, eid := "b" },
                                 { ty := { id := "Photo", path := [] }, eid := "ghost" }],
                 context := Cedar.Data.Map.mk [] })] },
 3)) — validateWithLevel rejected policy p2 with .levelError — the level checker rejected an entity-access expression it should have allowed


(([{ id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Photo", path := [] }, eid := "b" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Photo", path := [] }, eid := "a" }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "Foo", path := [] }
                       { ty := { id := "User", path := [] }, eid := "bob" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "alice" }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Foo", path := [] }, eid := "a" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "x" }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Foo", path := [] }
                         { ty := { id := "User", path := [] }, eid := "a" }),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Album", path := [] }
                          { ty := { id := "Foo", path := [] }, eid := "x" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Photo", path := [] }, eid := "x" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Photo", path := [] }, eid := "a" }),
    condition := [] }],
 { ets := Cedar.Data.Map.mk
            [({ id := "Foo", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [],
                  attrs := Cedar.Data.Map.mk [],
                  tags := some (Cedar.Validation.CedarType.bool (Cedar.Validation.BoolType.tt)) }),
             ({ id := "Photo", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk
                                 [{ id := "Foo", path := [] },
                                  { id := "Photo", path := [] },
                                  { id := "User", path := [] }],
                  attrs := Cedar.Data.Map.mk
                             [("age", Cedar.Validation.Qualified.optional (Cedar.Validation.CedarType.int))],
                  tags := none }),
             ({ id := "User", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [{ id := "Action", path := [] }, { id := "Album", path := [] }],
                  attrs := Cedar.Data.Map.mk
                             [("age",
                               Cedar.Validation.Qualified.required
                                 (Cedar.Validation.CedarType.bool (Cedar.Validation.BoolType.anyBool)))],
                  tags := some (Cedar.Validation.CedarType.bool (Cedar.Validation.BoolType.anyBool)) })],
   acts := Cedar.Data.Map.mk
             [({ ty := { id := "Foo", path := [] }, eid := "ghost" },
               { appliesToPrincipal := Cedar.Data.Set.mk [{ id := "Album", path := [] }, { id := "User", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk
                                        [{ id := "Action", path := [] },
                                         { id := "Foo", path := [] },
                                         { id := "User", path := [] }],
                 ancestors := Cedar.Data.Set.mk
                                [{ ty := { id := "User", path := [] }, eid := "b" },
                                 { ty := { id := "User", path := [] }, eid := "y" }],
                 context := Cedar.Data.Map.mk
                              [("age",
                                Cedar.Validation.Qualified.required
                                  (Cedar.Validation.CedarType.bool (Cedar.Validation.BoolType.anyBool))),
                               ("owner", Cedar.Validation.Qualified.required (Cedar.Validation.CedarType.string))] }),
              ({ ty := { id := "Foo", path := [] }, eid := "view" },
               { appliesToPrincipal := Cedar.Data.Set.mk [],
                 appliesToResource := Cedar.Data.Set.mk [{ id := "Action", path := [] }, { id := "User", path := [] }],
                 ancestors := Cedar.Data.Set.mk
                                [{ ty := { id := "Action", path := [] }, eid := "z" },
                                 { ty := { id := "Foo", path := [] }, eid := "y" }],
                 context := Cedar.Data.Map.mk [] })] },
 19)) — validateWithLevel rejected policy p2 with .levelError — the level checker rejected an entity-access expression it should have allowed


(([{ id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Photo", path := [] }, eid := "ghost" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when, body := Cedar.Spec.Expr.var (Cedar.Spec.Var.action) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "x" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "a" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "age") }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "a" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "bob" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Photo", path := [] }, eid := "ghost" }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Foo", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "User", path := [] }, eid := "ghost" },
                      { ty := { id := "User", path := [] }, eid := "alice" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool true))
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "owner"))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.mem { ty := { id := "Action", path := [] }, eid := "a" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "b" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless, body := Cedar.Spec.Expr.var (Cedar.Spec.Var.resource) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Album", path := [] }, eid := "x" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Foo", path := [] }, eid := "view" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Foo", path := [] }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Foo", path := [] }, eid := "x" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.mem { ty := { id := "User", path := [] }, eid := "a" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "Album", path := [] }
                         { ty := { id := "Action", path := [] }, eid := "y" }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Album", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Album", path := [] }, eid := "z" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.mem { ty := { id := "User", path := [] }, eid := "alice" }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Photo", path := [] }, eid := "ghost" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "p1" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.and
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.action))
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "flag"))
                                (Cedar.Spec.Expr.lit
                                  (Cedar.Spec.Prim.entityUID
                                    { ty := { id := "Album", path := [] }, eid := "ghost" }))) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Album", path := [] }
                          { ty := { id := "Foo", path := [] }, eid := "ghost" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "ghost" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "User", path := [] }
                         { ty := { id := "Photo", path := [] }, eid := "alice" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.and
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 64 })))
                              (Cedar.Spec.Expr.var (Cedar.Spec.Var.context)) }] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "User", path := [] }
                          { ty := { id := "Photo", path := [] }, eid := "y" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Album", path := [] }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.or
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "age")))
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 71 }))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 24 }))) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Photo", path := [] }, eid := "alice" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.is { id := "Album", path := [] }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [] },
  { id := "p1",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "a" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "a" }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Foo", path := [] }
                          { ty := { id := "Album", path := [] }, eid := "a" }),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.eq { ty := { id := "User", path := [] }, eid := "y" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "Foo", path := [] }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when, body := Cedar.Spec.Expr.var (Cedar.Spec.Var.principal) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionScope
                     (Cedar.Spec.Scope.isMem
                       { id := "User", path := [] }
                       { ty := { id := "Photo", path := [] }, eid := "a" }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "flag") }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.is { id := "Photo", path := [] }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "Action", path := [] }, eid := "z" },
                      { ty := { id := "Action", path := [] }, eid := "ghost" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Foo", path := [] }, eid := "p1" }),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "y" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "y" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.eq)
                              (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool false))
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.action))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.resource))) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope (Cedar.Spec.Scope.any),
    actionScope := Cedar.Spec.ActionScope.actionInAny [],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Album", path := [] }, eid := "alice" }),
    condition := [{ kind := Cedar.Spec.ConditionKind.when,
                    body := Cedar.Spec.Expr.binaryApp
                              (Cedar.Spec.BinaryOp.less)
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.int { toUInt64 := 55 }))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "name")))
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal))
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.bool false))) }] },
  { id := "p2",
    effect := Cedar.Spec.Effect.forbid,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.mem { ty := { id := "Photo", path := [] }, eid := "z" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny
                     [{ ty := { id := "User", path := [] }, eid := "x" },
                      { ty := { id := "User", path := [] }, eid := "alice" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.eq { ty := { id := "Photo", path := [] }, eid := "edit" }),
    condition := [] },
  { id := "p2",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.eq { ty := { id := "Action", path := [] }, eid := "y" }),
    actionScope := Cedar.Spec.ActionScope.actionInAny [{ ty := { id := "Album", path := [] }, eid := "p1" }],
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.is { id := "User", path := [] }),
    condition := [{ kind := Cedar.Spec.ConditionKind.unless,
                    body := Cedar.Spec.Expr.and
                              (Cedar.Spec.Expr.or
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "flag"))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.context)))
                              (Cedar.Spec.Expr.and
                                (Cedar.Spec.Expr.lit (Cedar.Spec.Prim.string "flag"))
                                (Cedar.Spec.Expr.var (Cedar.Spec.Var.principal))) }] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "User", path := [] }
                          { ty := { id := "Foo", path := [] }, eid := "z" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.any),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope (Cedar.Spec.Scope.any),
    condition := [] },
  { id := "p0",
    effect := Cedar.Spec.Effect.permit,
    principalScope := Cedar.Spec.PrincipalScope.principalScope
                        (Cedar.Spec.Scope.isMem
                          { id := "Foo", path := [] }
                          { ty := { id := "User", path := [] }, eid := "p1" }),
    actionScope := Cedar.Spec.ActionScope.actionScope (Cedar.Spec.Scope.is { id := "Action", path := [] }),
    resourceScope := Cedar.Spec.ResourceScope.resourceScope
                       (Cedar.Spec.Scope.isMem
                         { id := "User", path := [] }
                         { ty := { id := "User", path := [] }, eid := "p1" }),
    condition := [] }],
 { ets := Cedar.Data.Map.mk
            [({ id := "Album", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [{ id := "Photo", path := [] }],
                  attrs := Cedar.Data.Map.mk [],
                  tags := some (Cedar.Validation.CedarType.entity { id := "User", path := [] }) }),
             ({ id := "Foo", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [{ id := "Album", path := [] }, { id := "Foo", path := [] }],
                  attrs := Cedar.Data.Map.mk
                             [("flag", Cedar.Validation.Qualified.required (Cedar.Validation.CedarType.string))],
                  tags := none }),
             ({ id := "Photo", path := [] },
              Cedar.Validation.EntitySchemaEntry.standard
                { ancestors := Cedar.Data.Set.mk [{ id := "Album", path := [] }],
                  attrs := Cedar.Data.Map.mk
                             [("age",
                               Cedar.Validation.Qualified.required
                                 (Cedar.Validation.CedarType.bool (Cedar.Validation.BoolType.anyBool))),
                              ("flag",
                               Cedar.Validation.Qualified.optional
                                 (Cedar.Validation.CedarType.ext (Cedar.Validation.ExtType.datetime)))],
                  tags := some (Cedar.Validation.CedarType.ext (Cedar.Validation.ExtType.datetime)) })],
   acts := Cedar.Data.Map.mk
             [({ ty := { id := "User", path := [] }, eid := "a" },
               { appliesToPrincipal := Cedar.Data.Set.mk [{ id := "Album", path := [] }, { id := "User", path := [] }],
                 appliesToResource := Cedar.Data.Set.mk [{ id := "Album", path := [] }],
                 ancestors := Cedar.Data.Set.mk [{ ty := { id := "Foo", path := [] }, eid := "bob" }],
                 context := Cedar.Data.Map.mk [] })] },
 21)) — validateWithLevel rejected policy p2 with .levelError — the level checker rejected an entity-access expression it should have allowed