Composite by Vitaly Kamiansky, Vladimir Ilin

<PackageReference Include="Composite" Version="1.5.5" />

 MarkedComposite

public static class MarkedComposite
public static Composite<TMark, TPayload> Create<TMark, TPayload>(TMark mark, IEnumerable<Composite<TMark, TPayload>> components)

Instantiates a new composite variant of MarkedComposite<TMark,TPayload>.

public static Composite<TMark, TPayload> CreateValue<TMark, TPayload>(TMark mark, TPayload value)

Instantiates a new value variant of MarkedComposite<TMark, TPayload>.

public static Composite<TMark, TPayload> Empty<TMark, TPayload>(TMark mark)

Initializes an empty marked composite.