The tests seem to be saying that ((), Void) has a count of 1 (expected S Z, got Z). Unless I'm mistaken, there is no instance of ((), Void).
I've also had my code fail on ((), Bool), stating that the count should be 3. But there should only be two instances of this type: ((), True) and ((), False).
I believe that the subtyping system of Rust will implicitly cast a type with a longer lifetime into a type with a shorter lifetime in order to satisfy a function signature.
Therefore, we only need the one lifetime generic 'a in order to provide the same functionality as this solution, since parameters with a lifetime longer than 'a will be implicitly cast to have lifetime 'a.
For some reason fixing the
Countable
instance forConst
got rid of the problem. I wouldn't have thought the two were related.The tests seem to be saying that
((), Void)
has a count of 1 (expected S Z, got Z
). Unless I'm mistaken, there is no instance of((), Void)
.I've also had my code fail on
((), Bool)
, stating that the count should be 3. But there should only be two instances of this type:((), True)
and((), False)
.Edit: This is in the tests for
Listable
.Haskell:
Test results begin with "the
makeUpperCase
function", but there is no such function in the Kata.I believe that the subtyping system of Rust will implicitly cast a type with a longer lifetime into a type with a shorter lifetime in order to satisfy a function signature.
Therefore, we only need the one lifetime generic
'a
in order to provide the same functionality as this solution, since parameters with a lifetime longer than'a
will be implicitly cast to have lifetime'a
.