Hi Srikanth,
you are right. There are use case where there are mixed edge types, i.e. directed and undirected.
For instance if you have symmetric and assymmetric relations in a graph and want to be able to reason over the graph.
But normally you just use a directed network in this cases and split the undirected in two directed edges. Most of the graph theory is for either directed or undirected graphs, and consequently most of the available algorithms. If you have mixed graphs your graph logic becomes complicated and error prone, because you have to have many if (directed) than expressions in your code. You won't be able to reuse much code.
It is possible to use mixed graphs, but I definitely would not recommend using them for more than visualization.
You can always use a directed network and than display edges without arrows based on their edge type, i.e. define some edge types you display as undirected edges, if it is only about visualization.
Matthias