[Agda] implicit/explicit difference in candidate

Andrés Sicard-Ramírez asr at eafit.edu.co
Sat May 26 08:28:35 CEST 2018


On 25 May 2018 at 14:44, Sergei Meshveliani <mechvel at botik.ru> wrote:
> Dear Agda developers,
>
> the fragment
>
>   allPrime-fromAsd-ks' : All IsPrime (map fromAsd ks')
>   allPrime-fromAsd-ks' =
>      AllProp.gmap {A = Associated} {B = C} {P = Asd.IsPrime}
>         {Q = IsPrime} {f = fromAsd}
>         (\ {p'} → proj₂ $ IsPrime←→IsPrime-asd $ fromAsd p')
>         all-prime-ks'
>
> in DoCon-A-2.02 (FactorizationMon/FtMonoid1.agda)
> is type-checked in Agda 2.5.3
> and is not type-checked in Agda 2.5.3.20180519 :
>
> ------------------------------------------------------------------
> Found an implicit application where an explicit application was
> expected
> when checking that {f = fromAsd}
> (λ {p'} → proj₂ $ IsPrime←→IsPrime-asd $ fromAsd p') all-prime-ks'
> are valid arguments to a function of type
> Asd.IsPrime Relation.Unary.⊆
> (λ {.x} → IsPrime) ∘
> _f_422 cMon∣? cancel a M' all-prime-ks' [a]='value-M' →
> All Asd.IsPrime Relation.Unary.⊆
> (λ {.x} → All IsPrime) ∘
> map (_f_422 cMon∣? cancel a M' all-prime-ks' [a]='value-M')
> -----------------------------------------------------------------

It seems you can remove all the implicit arguments when using
`AllProp.gmap` (based on
https://github.com/agda/agda-stdlib/commit/33b88cfe66d909d8519823c0174b1e7b233f8b59).


-- 
Andrés


More information about the Agda mailing list