defmodule Carny do alias Carny.{Identifier, Policy} def require_permission(privilege, %Identifier{} = id, %Policy{} = policy, f) do case Policy.authorized?(privilege, id, policy) do true -> f.() false -> {:error, :unauthorized} end end end