> PandocMonad m => ReaderOptions -> [(FilePath, Text)] -> m Pandoc I like this idea, but I have two suggestions for the bikeshed colors: 1. You already mentioned ByteString instances for the PandocInput typeclass. How about [(FilePath, ByteString)] as well? 2. May I suggest a record instead of a tuple. For example, the type could become (disregarding the new typeclass for clarity)     PandocMonad m => ReaderOptions -> [PandocInputFile] -> m Pandoc     data PandocInputFile = PandocInputFile { inputFileName :: FilePath, inputFileHandle :: Handle} Now a Reader author can get a rich API like inputFileHandle :: PandocInputFile -> Handle inputFileAsByteString :: PandocInputFile -> ByteString inputFileAsText ::PandocInputFile -> TextinputFileName :: PandocInputFile -> FilePath inputFolder :: PandocInputFile -> FilePath But especially if the constructor is hidden, this would still allow for re-shuffeling under the hood if necessary. Part of me wants to generalize this further by turning the record back into a (free and comonadic I think?) functor, but that may be going too far. 3. Well actually, how about…     instance Foldable f => PandocInput (f PandocInputFile) where… Ok, now I'm really shedding my bikes all over your beautiful couch. Sorry about that. -- You received this message because you are subscribed to the Google Groups "pandoc-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/ecb48165-93a1-9566-c987-ddd42a7e409d%40gmail.com.