A monadic parser has the type:
String -> [String,a]
where 'a' is the abstract syntax tree returned by the parser.
An error is indicated by an empty list.
Ambigous grammars can return multiple results.
|We can introduce a functor which takes any type and turns it into a list of that type.|
|We can draw this as an endo-functor.|
Parser - Natural Transformations
|The unit transform creates a single valued list|
|The natural way to create a mult transform is a transform which flatterns a list of lists into a flat list.|