While the handling of invocation parameters is now integrated in the node processing, there is still a gap to close in the Node Builder, which is tricky due to the way the parameter-functor is now integrated deeply into the setup of the `FeedManifold`; so the `PortBuilder` is tasked now with implanting a `FeedPrototype` -- which must be adapted to a ''specific parameter-functor,'' which is only supplied optionally, as a further build step. At first this seemed to present a pattern very similar to a ''State Monad'' — and thus I investigated if encapsulating the build of the prototype into such a State Monad would simplify the structure of the builder — yet once again, Monads turned out as ''Anti Pattern'' rather: we'd had to ad an extra component, which is superficially generic but without any tangible relation to patterns of the real world, it would be rather technical (using lots of composed lambda primitives, which will be condensed into a single builder function by the compiler / optimiser. But worse still, this highly complicated setup does not actually solve the problem with N x M typed contexts — implying that it ''is not actually an abstraction,'' rather just pretends to be generic. The benefit of this lengthy design exercise is to understand better the situation in the builder, which amounts to building up mixed typed context with several degrees of freedom. It is better to accept this reality and keep it in plain sight, i.e. let the builder be explicitly typed from end to end and do not try to package parts of this selection process behind a virtualisation.
8.6 MiB
8.6 MiB
| The file is too large to be shown. |