© 2026 Hedgehog Software, LLC
const permissionMatch = pipe( Match.type<Permission.Permission>(), Match.tag("Admin", () => Either.right(true)), Match.orElse(() => Either.left(new InsufficentRoles({ requiredRoles: ["Admin"] })), ), );
const roles = ['Admin', 'User']
const hasPermission: Effect.Effect<boolean, InsufficentRoles, never> = pipe( Effect.all(roles.map(permissionMatch)), Effect.map((result) => result.some((v) => v === true)), );