Composition of functions and operator forms of built-in functions

I am trying to replicate the behaviour of some of the built-in operator forms (for Map, Apply etc) but struggling to understand the way Composition works. For a concrete example:

list = {1 \[UndirectedEdge] 10, 2 \[UndirectedEdge] 11, 3 \[UndirectedEdge] 11, 4 \[UndirectedEdge] 10}  Map[Apply[Rule]]@list  %: {1 -> 10, 2 -> 11, 3 -> 11, 4 -> 10} 

produces the result I was looking for in this case.

My question is how to replicate the composition of operator forms above. This naive attempt doesn’t work as intended and produces an error message:


Rule::argr: Rule called with 1 argument; 2 arguments are expected.

%: Map[Apply[Rule[{1 \[UndirectedEdge] 10, 2 \[UndirectedEdge] 11, 3 \[UndirectedEdge] 11, 4 \[UndirectedEdge] 10}]]] 

I’ve tried various combinations of parentheses to control the evaluation to avail – the example I started with appears to build an operator form of the composition of Apply and Rule then maps it over the list input but that is not what the composition I attempted does.

So, how to produce the same with Composition or other constructs?

I’m asking really to try and get a fuller understanding of these types of construction work.