if {a,b} and {b,a} are edges, I would like one line between them that has two arrowheads
ClearAll[modiFy]
modiFymodiFy[as_ =: Graph[DeleteDuplicates[EdgeList{-.05, @.05}] #:= Graph[DeleteDuplicates[EdgeList@#, Sort @ # == Sort @ #2 &],
EdgeStyle -> {e : DirectedEdge[a_, b_] /; a =!= b && MemberQ[EdgeList@#, Reverse @ e] :>
Arrowheads[{-.05, .05}]Arrowheads[as]}, VertexCoordinates -> GraphEmbedding[#], Options @ #]&
Examples:
g1 = Graph[{1 -> 2, 2 -> 1, 3 -> 1, 3 -> 2, 4 -> 1, 4 -> 2, 4 -> 4}]
modiFymodiFy[] @ g1
modiFy[{-.08, .05}] @ g1
g2 = Graph[{1 -> 2, 2 -> 1, 3 -> 1, 3 -> 2, 4 -> 1, 4 -> 2, 4 -> 4}, ImageSize -> 400,
EdgeLabels -> Placed["Name", 1/3], ImagePadding -> 20, VertexLabels -> "Name"]
modiFymodiFy[] @ g2