type-level implementation of this logic: Out = R if T has a tail of type L (L dropRight T) ::: R if L has a tail of type T
type-level implementation of this logic: Out = R if T has a tail of type L (L dropRight T) ::: R if L has a tail of type T
"Unpacks" an HList if it has only zero or one element(s).
"Unpacks" an HList if it has only zero or one element(s). Out = Unit if L == HNil T if L == T :: HNil L otherwise
You can import Unpack.dontUnpack
if you'd like to circumvent this unpacking logic.