EntityOfConcern retargeting
About this pattern
This is a generated FPF pattern page projected from the published FPF source. It is canonical FPF content for this ID; it is not a FPF Reference product feature page.
How to use this pattern
Read the ID, status, type, and normativity first. Use the content for exact wording, the relations for adjacent concepts, and citations to keep active work grounded without pasting the whole specification.
Status: Stable Type: Definitional pattern
One-line summary. Use EntityOfConcern retargeting when one episteme concerns one entity and another concerns a different entity, yet a stated invariant remains useful across that change for one named purpose.
Retargeting in plain terms. The two epistemes concern different things. One named receiving use is admitted only when exact facts establish the stated invariant and show that the visible loss remains acceptable under named conditions.
Use this when. Use this pattern only after C.2.1 identifies the two epistemes and shows that their exact EntitiesOfConcern differ. A changed model kind, ontology frame, predicate set, coordinate system, or notation is a cue to repeat that identity test, not proof of retargeting.
What goes wrong if missed. A changed EntityOfConcern is treated as “the same thing in another form”, so claims, evidence, gate results, work authority, or currentness are carried forward without their own direct predicates or current results. The opposite error is to demand a semantic Bridge or reversible mapping when the case needs neither.
First useful move. Name both epistemes and both EntitiesOfConcern. Then state the invariant, visible loss, named receiving action, conditions, and exact facts used to judge the case.
What this buys. The reader can decide one receiving use from q and current facts; source-claim survival, performed Work, and EntityOfConcern identity retain their separate bases.
Not this pattern when. If the EntityOfConcern is preserved, use the pattern for the change that actually occurred: A.6.3.CR for wording, A.6.3.RT for representation scheme or reasoning medium, A.6.3.CSC for controlled coarsening, or E.17.EFP for explanation mode. A normal time-to-frequency description of the same signal is first a C.29 and A.6.3.RT case. Use F.9 only for a separately claimed Bridge between two exact local senses. Keep every other independently current claim under its direct pattern; the Relations section names the main neighboring owners once.
Several familiar moves can hide a real change of EntityOfConcern, but none proves that change merely by its name or notation:
Relations
Content
Problem frame
Several familiar moves can hide a real change of EntityOfConcern, but none proves that change merely by its name or notation:
- Physical cabinet and selected functional structure. An episteme about cabinet
Cab-7and one about selected functionalU.StructureRoute-Aconcern different exact entities when C.2.1 identifies them independently. A current behavior-test result can supply the case basis for a bounded retargeting claim. The source expressionRealises(Cab-7, Route-A)names an intended relation and its participants but has no current direct predicate or governor; A.6.RCD therefore returnsmissing-governor, and the expression contributes nothing to that basis. - Signal and spectrum. The ordinary Fourier case often concerns one signal in two representations. That is a C.29 mathematical-lens use followed by A.6.3.RT when the EntityOfConcern is preserved. A.6.4 opens only if the receiving episteme concerns a separately identified spectrum object and the use explains why that object, rather than the original signal under another representation, is current.
- Observations and fitted model. A dataset and a learned model can be different exact entities. An affirmative q may state a predictive invariant and name a prediction use; exact fit and held-out test outcomes then supply current-case facts for the separate judgement. Individual observations and unmodelled distinctions remain visible losses. Model fitting itself is separate Work.
For a case used positively, the local arrow r relates two identified epistemes with different EntitiesOfConcern, q affirmatively states the bounded-use proposition, and the current case facts satisfy it. If a system produced or changed an episteme, identify that application and Work separately.
A domain relation, mathematical transform, or F.9 Bridge contributes only the claim established by its own governor. C.2.1 independently identifies the two EntitiesOfConcern.
Problem
Without this discipline:
- Notation decides ontology. A changed coordinate system, mathematical domain, model kind, or predicate vocabulary is treated as proof that the EntityOfConcern changed.
- Retargeting is confused with viewing. A real move from one independently identified entity to another is called another view, so its loss and receiving-use boundary disappear.
- The invariant and loss remain rhetoric. Phrases such as “energy is preserved” or “the model summarizes the data” do not say which claim survives, which distinctions disappear, or which use remains sound.
- A mapping apparatus replaces the actual case. A generic kind bridge, score, diagram, or reversible optic is demanded even when the exact endpoints, q, and current facts already let the reader judge the named use.
- Arrow, claim, and execution collapse. A mathematical arrow is treated as if it granted a use, performed an operation, or produced an episteme.
- Structural reinterpretation duplicates the core rule. E.18 or a discipline pack invents another retargeting ontology instead of placing the same arrow and separate use claim in its own transformation-flow structure.
- Neighboring changes disappear into one label. Grounding, representation, scope, operating conditions, viewpoint selection, publication, operation application, and performed Work are folded into retargeting instead of being identified only when they occur.
Forces
- Different subject versus unsupported new claim. Changing the EntityOfConcern is permitted only when the receiving claims are conservative with respect to the declared invariant.
- Useful loss versus hidden loss. Retargeting may discard information, but the loss boundary and the use that tolerates it must be visible.
- Direct case versus universal apparatus. Use a domain relation, mathematical map, semantic Bridge, or diagram as current-case basis only when its own governor establishes the needed claim. Identify r from its endpoints, arrow rule or designator, and formal equivalence; judge q separately from exact current facts.
- Composition versus accidental equivalence. Compatible retargetings may compose. Equality of two evaluation routes, reversibility, idempotency, or semantic correspondence requires its own stated conditions; it does not follow from the word retargeting.
- Modularity. The retargeting arrow relates two epistemes, q states one bounded-use proposition, and a separate current-case judgement says whether the facts satisfy it, fail it, or leave it undecidable. Grounding, publication, Work, evidence, assurance, gate, flow structure, and cross-local-sense correspondence remain separate.
Solution — separate the arrow, use claim, current-case judgement, and any application
Informal definition
Definition. An EntityOfConcern-retargeting morphism is a local
EpMorphism r : X -> Ywhose exact endpoint epistemes concern different exact entities. A separate bounded-use assertion q affirms or denies that one declared invariant makes the stated loss acceptable for one named receiving use under named conditions.
EntityOfConcernRetargetingMorphism is a local mathematical subtype under C.29, not a durable kind. This pattern defines that subtype and the practical discipline for claims about its use.
Keep four things distinct:
- The arrow
r. Within the selected formal substrate, its exact domain X, codomain Y, arrow rule or designator, and declared formal equivalence identify it. The two endpoint epistemes and their different EntitiesOfConcern are recoverable. A changed use claim does not create another arrow. - The bounded-use assertion
q. This is a C.2.1 episteme about exact arrow r. Its ClaimGraph states the invariant, visible loss, named receiving use, conditions, and affirmative or negative polarity. Its complete claim content, exact EntityOfConcern, and effective ReferenceScheme identify q. A citation inside q can point to case facts; it does not decide whether those facts satisfy the proposition. - The current-case judgement. Compare the exact current facts with q's conditions and proposition, and report
satisfies,fails, orcannot decide. That result is not q's polarity and does not reidentify q or r. Use A.20 only when the case raises an internal-constraint check, A.10 only for a current evidence-use claim, and B.3 only for a current assurance claim or its material-reliance threshold. Otherwise the named rule and direct case facts are enough. - Any application occurrence. If a system actually computes, authors, or otherwise produces or changes an episteme by using the declared operation, identify that A.6.1 application, its argument and result bindings, the performing system, and any Work separately. The mathematical statement
r : X -> Yalone names no occurrence.
The smallest useful practitioner account still asks six cheap questions:
These answers may be one short paragraph; they require no new record form or assurance package. Add a separately governed commitment change, neighboring claim, or durable result only when it changes q, the judgement, or the receiving action; ER-1 and CC-A.6.4-5 name the values to inspect. Add an F.9 Bridge only when the same case separately claims a semantic relation between two exact F.17 local senses.
When the judgement is fails, retain the affirmative q as the stated proposition but do not admit that case. When it is cannot decide, keep the source material, name the exact missing fact and what would reopen the question, and stop. Failure of an affirmative q does not by itself establish a negative q; a negative assertion needs its own claim content and case basis.
Formal declaration and object boundaries
Repeated formal use may be declared in an A.6.0 U.Signature(profile=FormalSubstrate) episteme. That declaration is about the local subtype EntityOfConcernRetargetingMorphism; it is not the subtype, one arrow, a use claim, or an application occurrence.
X and Y are exact C.2.1 epistemes. r : X -> Y is one local mathematical arrow under C.29. Its identity uses the exact endpoints, arrow rule or designator, and the selected substrate's equivalence criterion; the endpoints alone do not identify it. The declaration states which parts of X and Y's claim content, exact EntityOfConcern, and effective ReferenceScheme remain the same or differ. If r's rule reads a representation or another separately obtaining relation, it names the exact occurrence and compares endpoint facts without changing that occurrence.
A.6.4 reuses the one A.6.2 formal model: category Ep, endpoint-only thin category EoCBase, dom, cod, identities, compose, and the declared mapping α. For retargeting arrow r, α(r)=u_{α(X),α(Y)} is the unique formal endpoint arrow between the independently different EntitiesOfConcern. It records only that endpoint difference and deliberately forgets r's arrow rule; it is not an independently declared domain or world-side relation. The local classification function entityOfConcernChangeMode returns retarget for r and records the same endpoint difference. It classifies only the endpoint-change mode; it adds no domain-function evaluation or second retargeting calculus.
The bounded-use assertion q, current-case judgement, and any application occurrence remain separate. Grounding, representation, an F.9 Bridge, evidence, publication, Work, gate, currentness, and assurance also remain separate objects or claims under their direct patterns. Add A.6.5 SlotSpecs only inside an exact reusable direct-relation declaration; they are not fields of r, X, Y, or q.
Laws (ER-0...ER-6)
These laws refine A.6.2 for the local retargeting subtype. They do not assert durable U-kind membership.
ER-0 - Arrow class and endpoint basis.
An arrow r : X -> Y is in the local retargeting subtype only when X and Y are exact C.2.1 epistemes, entityOfConcernChangeMode(r)=retarget, and their exact EntitiesOfConcern differ. A shared label, kind name, diagram, implementation, use claim, or F.9 card identifies neither r nor its endpoints by itself.
ER-1 - Arrow identity and neighboring facts.
- The selected formal substrate supplies r's arrow rule or designator and equivalence criterion; same endpoints alone do not identify an arrow.
- The declaration states which parts of X and Y's claim content, exact EntityOfConcern, and effective ReferenceScheme remain the same or differ. It names any separately obtaining representation or other relation that r's rule reads and the endpoint facts compared; r does not change that occurrence.
- Grounding, scope, operating condition, representation, and any viewpoint selected for a describing use remain separate values or relations.
- A different scheme, scope, context, or plane does not by itself create an F.9 Bridge. Cite F.9 only for an actually claimed direct relation between two exact F.17 local senses.
ER-2 - Separate use proposition and current-case judgement.
For each named receiving use, one separate C.2.1 assertion q states an affirmative or negative proposition about whether the source claims preserve the declared invariant in the receiving episteme and whether the visible loss is acceptable under the named conditions. The same r may have different q assertions for different uses without changing arrow identity.
A separate current-case judgement applies q to the exact current facts and returns satisfies, fails, or cannot decide. A direct fact, proof, test, or obtaining relation can enter the ordinary case basis through its own governor. Open A.20 only for an internal-constraint claim, A.10 only for evidence use, and B.3 only for assurance or its material-reliance threshold. Each retains its own identity; q's polarity stays as written, and cannot decide is reopened when its named missing fact becomes available.
ER-3 - Composition and separately claimed final use.
Two retargeting arrows with an exact matching middle episteme compose in the parent Ep category; A.6.2 category closure supplies the composite and requires it to satisfy the parent laws. The composite remains in the A.6.4 retargeting subtype only when its final endpoint EntitiesOfConcern differ and its other subtype laws hold. A round trip whose final endpoints concern the same exact entity is a preserve-mode EFEM arrow in the parent class, not an A.6.4 retargeting arrow.
A claim that an admitted composite is suitable for a final use is another q: it states the final source and receiving entities, preserved invariant, accumulated loss, receiving use, conditions, and polarity. A separate judgement applies that proposition to the final current case.
No universal SquareLaw follows. A consumer that claims two evaluation routes equivalent, or relies on a correspondence between epistemes, identifies the routes or correspondence, comparison rule, tolerated difference, and witness under the direct governor of that claim.
ER-4 - Determinism and repeat boundary.
Determinism, reversibility, and idempotence may be properties of the declared arrow only when the selected formal substrate states the exact domain, equality or equivalence, and evidence used to test them. A repeat property of an operation or application is a different claim: it follows from the rule and inputs of that operation or application. The mathematical statement r : X -> Y says nothing about execution or repetition. Ambient time, randomness, solver state, and external services belong to an explicitly declared operation or mechanism.
ER-5 - Applicability and optional semantic-Bridge branch.
The formal declaration states admissible endpoint families and material mathematical conditions. Each q separately states the invariant, loss boundary, receiving use, case conditions, and affirmative or negative polarity; the current-case judgement states whether the facts satisfy it. F.9 is triggered only for a separately claimed relation between two exact local senses. Optional CL summarizes evidence about that Bridge; it is neither a retargeting threshold nor a participant in r or q.
Legacy KindBridge plus mandatory CL, and generic SquareLaw-retargeting interfaces, are not reactivated here. A consumer that still needs one identifies a current direct governor or stops at missing-governor.
ER-6 - Separate application, Work, and resulting episteme.
An arrow that preserves the EntityOfConcern belongs to the A.6.3 preserving branch rather than this subtype. When a system measures, computes, fits, translates, authors, or otherwise changes an episteme, identify the A.6.1 application and bindings when current, the performing system and Work, and the resulting C.2.1 episteme separately. The arrow can relate those epistemes without performing that activity or creating a universal production relation.
Boundary with representation, explanation, transformation-flow structure, and neighboring claims
A.6.4 is triggered only by an independently established change of exact EntityOfConcern. A changed kind, ontology frame, predicate set, mathematical domain, or notation is a recognition cue that reopens the C.2.1 identity test; none decides the branch by itself.
Boundary rules:
- if the EntityOfConcern is preserved and the main change is representation scheme or reasoning medium, use
A.6.3.RT; - if the EntityOfConcern is preserved and the main change is explanation mode, explanatory stance, or explanation-facing publication, use
E.17.EFP; - if the same case also asserts a semantic relation between two exact local senses from different semantic contexts, test
F.9separately and cite a Bridge only when its predicate obtains; useF.9.1only for an optional stance note about that already constituted use claim. A domain correspondence, mathematical rule, or direct case fact enters the current-case basis only through the exact claim established by its governor; that claim alone does not open F.9; - if a legacy consumer asks for
KindBridge,CL, or a universal SquareLaw-retargeting witness without a current direct governor, stop atmissing-governorrather than making that apparatus constitutive in A.6.4; - if the receiving item is useful only under narrower declared use with visible loss and source-bearing reopen, use
A.6.3.CSC; - if a
StructuralReinterpretation,PathSliceId,CrossingRef, orDecisionLogRefis present, useE.18,A.20, orA.21for graph, path, constraint, and gate relations. Those references do not prove semantic continuity or retargeting admissibility by themselves; - for decoded or latent output, use C.2.6 and C.2.7 for the anchoring mode and representation factors; keep the output report-only or exploratory until its exact source or model-state relation, decode or probe relation, recoverability evidence, admissible use, and source-return action are stated under their current governors;
- B.5.2 governs changes within its abductive loop, including its prompt, candidate and rival sets, selected prime hypothesis, plausibility filtering, and reopen. Apply A.6.4 additionally only for an independently established EntityOfConcern change and bounded receiving use;
- keep any other independently current claim under the pattern that defines or tests it; the Relations section names the main neighboring owners.
A.6.4 defines arrow r, bounded-use assertion q, and the separate current-case judgement that E.18 may place at a StructuralReinterpretation locus. That placement identifies none of them and does not make the judgement satisfies.
Archetypal Grounding (Tell-Show-Show)
Tell. Retargeting means “different EntityOfConcern, one stated invariant, visible loss, one named use, and exact current facts for judging it”.
Show 1 — Physical cabinet to selected functional structure. X concerns cabinet Cab-7; Y concerns selected functional U.Structure Route-A. C.2.1 identifies the cabinet and structure independently. Affirmative q states that the routing-behaviour invariant makes the visible loss acceptable for fault-isolation planning. A current behaviour-test result compares Cab-7's observed routing under q's named conditions with the routing decisions stated for Route-A and meets q's criterion; the judgement is satisfies. The source expression Realises(Cab-7, Route-A) names an intended relation and its participants but has no current direct predicate or governor, so it stops at missing-governor and contributes nothing to that judgement. Y drops cabinet layout and manufacturer details. E.18 placement identifies neither r nor q and supplies no judgement.
Show 2 — Fourier near-miss and positive branch. In the ordinary case, X and Y both concern sampled signal run Signal-17; X uses a time-domain representation and Y a frequency-domain representation. Route first through C.29 and then A.6.3.RT. Under its declared conditions, Parseval's relation gives the energy-preservation equality; the spectrum notation still represents the same EntityOfConcern.
A positive A.6.4 branch opens only if C.2.1 separately identifies, for example, exact signal run Signal-17 and exact spectral-distribution object Spectrum-17 as the two EntitiesOfConcern. The receiving use must actually concern Spectrum-17—for example, comparing its peak distribution with another spectrum—rather than merely read another representation of Signal-17. Then r relates the two epistemes; affirmative q states the spectral-comparison proposition and may cite the Fourier relation and Parseval test. The current-case judgement is satisfies only when the named facts meet q's conditions and criterion while lost time localization remains visible.
Show 3 — Dataset to model. X concerns dataset D; Y concerns fitted model M, independently identified under the applicable model pattern. Affirmative q states the predictive invariant, visible losses, named prediction use, and conditions. The exact fit result and held-out test outcome are current-case facts; the judgement is satisfies when those facts meet q's conditions and invariant criterion. Individual observations and unmodelled distinctions remain visible losses, and any other dataset claim needs its own transfer basis. The fitting application and Work remain separate from r, q, and the judgement.
Bias-Annotation
A.6.4 deliberately foregrounds the exact source and receiving entities when the EntityOfConcern changes. Recover that pair, q's invariant and visible loss, the named receiving use, and the current-case basis. Open a neighboring branch only when a separately current claim needs its direct pattern.
Conformance Checklist (normative)
CC-A.6.4-1 - Exact endpoints and changed EntityOfConcern. C.2.1 identifies X and Y and their exact EntitiesOfConcern; the two entities differ. A changed kind, frame, predicate set, domain, or notation alone does not pass this check.
CC-A.6.4-2 - Arrow identity. The selected formal substrate supplies r's exact endpoints, arrow rule or designator, and equivalence criterion. Same endpoints, a diagram, or a use claim alone does not identify r.
CC-A.6.4-3 - Separate use proposition and case judgement. One C.2.1 assertion q names r, one receiving use, the invariant, visible loss, conditions, and affirmative or negative polarity. A separate current-case judgement reports satisfies, fails, or cannot decide from exact current facts. The same r may have another q and judgement for another use.
CC-A.6.4-4 - Conservative receiving claim. A satisfies judgement requires enough current case basis for q's invariant and stated use, and the receiving episteme adds no unsupported commitment about that invariant. Contrary facts yield fails; a missing deciding fact yields cannot decide plus that fact and the reopen condition. Neither result changes q's polarity.
CC-A.6.4-5 - Triggered additions only. For a Description or specification-use episteme, name every material change to claim content, effective scheme, grounding, scope, operating condition, or selected viewpoint under A.7 and E.10.D2. Add those values, evidence, currentness, a route-equivalence test, or a reopen condition only when they change q or the reader's action.
CC-A.6.4-6 - Separate semantic correspondence. Test an F.9 Bridge only when the case also claims a relation between two exact local senses. The Bridge, its bounded-use claim, optional CL, evidence, and reliance remain separate from r and q.
CC-A.6.4-7 - Separate application and Work. Measurement, computation, actuation, model fitting, authoring, and other effects use their exact operation application and Work patterns. The arrow statement r : X -> Y neither identifies that occurrence nor proves a production relation.
CC-A.6.4-8 - Fourier boundary. A same-signal time/frequency change routes to C.29 and A.6.3.RT. A.6.4 is used only after the receiving spectrum or other mathematical object is independently identified as a different EntityOfConcern.
CC-A.6.4-9 - StructuralReinterpretation boundary. E.18 governs structure position, path, crossing, and gate relations. A.20 tests q's exact proposition only when an internal constraint is current, and A.21 governs any gate decision. None identifies r or supplies a satisfies judgement merely by reference or placement.
CC-A.6.4-10 - Honest stop and light ordinary use. A missing deciding fact yields cannot decide and names the fact and reopen condition; contrary facts yield fails. Otherwise one short paragraph answering the six practical questions is enough. No separate evidence, assurance, publication, currentness, or reusable declaration is required unless its own use condition is current.
Common Anti-Patterns and How to Avoid Them
Consequences
- Viewing and retargeting separate cleanly. A viewing arrow preserves the EntityOfConcern. A retargeting arrow relates epistemes with independently different EntitiesOfConcern; q states one bounded-use proposition, and the separate current-case judgement says whether the facts satisfy it.
- StructuralReinterpretation receives one core rule. E.18 can place r and q without duplicating their identities; the A.6.4 current-case basis remains the exact facts and separate judgement.
- Loss becomes usable information. A lossy mapping can serve one bounded purpose; reversibility and semantic identity remain separately established claims.
- Optional apparatus stays optional. F.9 enters only for cross-local-sense correspondence; route-equivalence, evidence, assurance, gate, publication, and Work branches enter only when their own claims are current.
- Description boundaries remain visible. Claim content, scheme, grounding, scope, operating condition, and viewpoint changes do not disappear into one retargeting bundle.
Rationale
A.6.4 exists because some mathematical arrows relate epistemes that concern different entities. The arrow supplies r's formal relation between the endpoint epistemes. A separate q states the invariant, visible loss, receiving use, conditions, and affirmative or negative proposition; the current-case judgement tests that proposition against exact facts, and any performed Work keeps its separate application and Work basis. The reader decides the use from q and those facts. A Bridge, reversibility claim, or assurance branch enters only when its separately governed claim is current.
SoTA-Echoing
Practice question. What current transformation practice helps a reader keep a transformation definition, its execution, and a correctness claim separate—and what, if anything, can that practice say about whether the source and receiving epistemes concern different entities?
The A.6.4 split among r, q, and any application occurrence is a bounded FPF synthesis from these distinctions, not an externally established retargeting ontology. Reopen it if a current direct practice supplies a better identity rule, or if a concrete case cannot keep arrow identity stable while suitability changes across uses.
Mini-checklist (for use)
When you think you need retargeting, ask:
- Does the EntityOfConcern change? If no, use A.6.3 or another preserving pattern.
- Which two epistemes and EntitiesOfConcern are involved? Name them before naming a mapping technology.
- Which invariant does q state? Name its exact proposition and case assumptions.
- What is lost, and which receiving use tolerates that loss? A broad "same meaning" answer is insufficient.
- What witnesses the invariant and loss judgement? If the witness is missing or contradicted, stop or reopen.
- Is a relation between two local senses also claimed? Only then test F.9 separately; no Bridge follows merely from retargeting.
- Was computation or other Work performed? Identify the operation application and Work separately from r and q.
Relations
- Placement. After A.6.3 epistemic viewing and before A.6.5 relation-declaration SlotSpec discipline.
- Builds on. A.6.0 for a reusable FormalSubstrate declaration; A.6.2 for the local arrow discipline; A.6.3 for the preserved-EntityOfConcern neighboring branch; C.2.1 for episteme, EntityOfConcern, and use-assertion identity; C.29 for mathematical-lens use; A.6.3.RT for preserved-EntityOfConcern representation transitions; A.6.5 for SlotSpecs inside a reusable direct-relation declaration; A.7 and E.10.D2 for Description and specification-use boundaries; C.2 and C.3 or the relevant domain pattern for the invariant; and F.9 only for a separately claimed relation between exact local senses.
- Consumed by. E.18 may place r and q at a
StructuralReinterpretationlocus; A.20 may test the exact proposition carried by q; E.17 may publish an episteme that describes the case; KD-CAL and LOG-CAL may reason over a stated invariant. None redefines r or q. - Neighbor boundaries.
A.6.1andA.15govern an actual application and Work;A.10governs evidence;B.3governs assurance and reliance;A.21governs gate decisions;C.27governs temporal adequacy;A.3.3governs dynamics; the applicable direct control pattern governs control; andE.24.PUBgoverns publication. C.2.6 and C.2.7 govern language-state anchoring and representation factors; B.5.2 governs its abductive-loop state. LegacyKindBridgeplus mandatoryCL, and generic SquareLaw-retargeting interfaces, are not constitutive here.
A.6.4:End
Last Updated: 2026-09-10 — upstream FPF commit a87d0ef4 (github.com/ailev/FPF)