'Create a new instance.
:param ace: The :term:`ACE` that matched, triggering the result.
:param acl: The :term:`ACL` containing ``ace``.
:param permission: The required :term:`permission`.
:param principals: The list of :term:`principals <principal>` provided.
:param context: The :term:`context` providing the :term:`lineage`
searched.'

def __new__(cls, ace, acl, permission, principals, context):

    fmt = '%s    permission    %r    via    ACE    %r    in    ACL    %r    on    context    %r    for    principals    %r'
    inst = PermitsResult.__new__(cls, fmt, cls.__name__, permission, ace, acl, context, principals)
    inst.permission = permission
    inst.ace = ace
    inst.acl = acl
    inst.principals = principals
    inst.context = context
    return inst
