Ich suche im Wesentlichen nach dem Gegenteil der Typklasse Prepend[A, B]
.
Wenn ich etwas wie:
habe %Vor% Ich habe eine Aber wenn ich eine Sehr grob gefällt: HList
a
vom Typ A
und eine HList
b
vom Typ B
, ich kann eine prepend: Prepend[A, B]
finden, so dass ich sie mit a ++ b
. HList
ab
vom Typ prepend.Out
habe, wie kann ich die ursprüngliche A
und B
extrahieren? Ich kann keine Typklasse finden, die diese Aufgabe erfüllt, und vielleicht gibt es keine. Es scheint so, als würde ich etwas wie trait Cut[A <: HList, B <: HList, c <: HList]
brauchen, das bezeugt, dass C
durch vor-ausstehende A
bis B
erstellt wurde, obwohl ich mir nicht sicher bin, wie ich Zeugen erstellen würde.
Das geht mit Split
:
Und dann:
%Vor% Ich habe kürzlich eine "rückgängig machen" -Operation für die Klasse Remove
hinzugefügt, und das könnte Sinn machen etwas ähnliches in Prepend
einbauen zu lassen.