Write a simple function to clone an input into a pair.

Using your cloning function, as well as the robots arr, (>>>) and ***, implement the &&& robot

Similarly, rewrite the following function without using &&&:

addA f g = f &&& g >>> arr (\ (y, z) -> y + z)

clone a = (a,a)
f &&& g = arr clone >>> f *** g
addA f g = arr clone >>> f *** g >>> arr (\(y,z) -> y + z)
-- OR
addA f g = arr clone >>> f *** g >>> arr (uncurry (+))

Consider the charA parser from above. What would charA 'o' >>> charA 'n' >>> charA 'e' result in?

Write a simplified version of that combined parser. That is: does it accept the empty string? What are its starting symbols? What is the dynamic parser for this?