pass ::index to :fn if available