-- |
--   IP routing table is a tree of 'IPRange'
--   to search one of them on the longest
--   match base. It is a kind of TRIE with one
--   way branching removed. Both IPv4 and IPv6
--   are supported.
--
--   For more information, see:
--       <http://www.mew.org/~kazu/proj/iproute/>
module Data.IP.RouteTable (
    -- * Documentation

    -- ** Routable class
    Routable (..),

    -- ** Type for IP routing table
    IPRTable,

    -- ** Functions to manipulate an IP routing table
    empty,
    insert,
    delete,
    I.lookup,
    I.lookupKeyValue,
    I.lookupAll,
    findMatch,
    fromList,
    toList,
    foldlWithKey,
    foldrWithKey,
) where

import Data.IP.RouteTable.Internal as I