Skip to content
Discussion options

You must be logged in to vote

Nevermind, I solved it. The compiler enforce that all combinations be provided:

public readonly record struct TypeSet<F>
(
    K<F, TypeA> LiftedTypeA,
    K<F, TypeB> LiftedTypeB
);

public readonly record struct BiTypeSet<F, P>
(
    K<F, P, TypeA> LiftedTypeA,
    K<F, P, TypeB> LiftedTypeB
) : K<BiTypeSet<F>, P>;

public sealed class BiTypeSet<F>;
public abstract class TypeSetElementSelector<T>
{
    private protected TypeSetElementSelector() { }
    public abstract K<F, T> Select<F>(TypeSet<F> typeSet);
    public abstract K<F, P, T> Select<F, P>(BiTypeSet<F, P> typeSet);
}
public static class TypeSet
{
    public static TypeSetElementSelector<TypeA> SelectTypeA { get; } = new TypeAS…

Replies: 2 comments

Comment options

You must be logged in to vote
0 replies
Answer selected by ArsenalAlex108
Comment options

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants