Source code on Github
{-# OPTIONS --allow-unsolved-metas #-}
open import Prelude.Init; open SetAsType
open import Prelude.DecEq
open import Prelude.Setoid

module Nominal.ImportIssue (Atom : Type)  _ : DecEq Atom  where

open import Nominal.Swap    Atom
-- importing both abstractions and products confuses instance resolution
open import Nominal.Abs     Atom
open import Nominal.Product Atom

module _ {A : Type}  _ : ISetoid A   _ : Swap A  where

  private variable 𝕒 𝕓 : Atom

  _ :  {x y : Atom × Atom}  x  y   𝕒  𝕓  x   𝕒  𝕓  y
  _ = cong-swap

  _ :  {x y : Abs Atom}  x  y   𝕒  𝕓  x   𝕒  𝕓  y
  _ = cong-swap
  -- _ = cong-swap {A = Abs _} -- this works