úÎ? 8 9:;<=>? 8 8 9:;<=>?The  function takes an  and a contiguous ! mask and returned a masked . The  function takes * and returns a contiguous  mask. The >:> operator takes two   . It returns @ if  the first   contains the second   . Otherwise,  it returns A. The  toMatchedTo function take an  address and an  ,  and returns @$ if the range contains the address. The  functions takes an  address and a mask ? length. It creates a bit mask from the mask length and masks  the  address, then returns   made of them. ;The Tree structure for IP routing table based on TRIE with C one way branching removed. This is an abstracted data structure, - so you cannot touch its inside. Please use  or  , instead. BC"A class to contain IPv4 and IPv6. The  function takes * and returns an  address " whose only n-th bit is set. The  function takes an  address and an test bit   address and returns @ is the bit is unset,  otherwise returns A. DEFGHThe - function returns an empty IP routing table. The ( function inserts a value with a key of   to   and returns a new . IJKLThe & function deletes a value by a key of   from   and returns a new . MThe  function looks up  with a key of  .  If a routing information in  matches the key, its value  is returned. N The   function looks up  with a key of  . - If the key matches routing informations in  , they are  returned. !The !. function creates a new IP routing table from  a list of a pair of IPrange and value. "The "& function creates a list of a pair of   and " value from an IP routing table. OBCDEFGHIJKLMN !"OCBBCDEFGHIJKLMN !"O  !"  !"   P       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH23I23JKLMNOPQRSTUVWXY iproute-1.2.2Data.IPData.IP.RouteTable Data.IP.Addr Data.IP.Mask Data.IP.Range Data.IP.OpData.IP.RouteTable.InternalIPv6IPv4IPipv6ipv4toIPv4toIPv6 AddrRangeaddrmaskmlenIPRange IPv6Range ipv6range IPv4Range ipv4rangeAddrmasked intToMask>:> isMatchedTo makeAddrRangeIPRTableRoutable intToTBitisZeroemptyinsertdeletelookup findMatchfromListtoListbase Text.ReadreadIP6IP4IPv6AddrIPv4AddrshowIPv4showIPv6ghc-prim GHC.TypesIntparseIP parseIPv4 parseIPv6digip4hexip6ip6'maskIPv4maskIPv6 masksWord32 masksIPv4 masksIPv6 parseIPRangeparseIPv4RangeparseIPv6Rangeip4range maskedIPv4ip6range maskedIPv6TrueFalseNodeNil intToTBitIPv4 intToTBitIPv6intToTBitsWord32intToTBitsIPv4intToTBitsIPv6joinglue keyToTestBitisLeftnodesearchfoldt