julia> using Zygote, ChainRules, ChainRulesCore
julia> x = BitArray([0])
julia> _, back = rrule(AbstractArray{Float64}, x)
julia> (::ProjectTo{NoTangent})(::AbstractThunk) = NoTangent()
julia> back([1.0])
(NoTangent(), NoTangent())
julia> back(@thunk([1.0]))
ERROR: MethodError: (::ProjectTo{NoTangent, @NamedTuple{}})(::Thunk{var"#1#2"}) is ambiguous.
CC @oxinabox @mcabbott @ToucheSir
From a conversation on Slack, the fix seems to be to define the method:
(::ProjectTo{NoTangent}(::Thunk) = NoTangent()