mapper :: (Serializable a, Serializable b, Serializable s)
       => (a -> DNA s)
       -> (s -> DNA (Maybe (s, b)))
       -> (Int -> b -> Int)
       -> Mapper a b
mapper = Mapper
mapper :: (Serializable a, Serializable b, Serializable s)
       => (a -> DNA s)
       -> (s -> DNA (Maybe (s, b)))
       -> (Int -> b -> Int)
       -> Mapper a b
mapper = Mapper
mapper = Mapper