lets ` <*> + <*> | + pure (\u1 -> (\u2 -> u1)) | ` <|> | + <*> | | + <*> | | | + pure (\u1 -> (\u2 -> u1)) | | | ` pure 'a' | | ` satisfy | ` <*> | + <*> | | + pure (\u1 -> (\u2 -> u1)) | | ` pure 'b' | ` satisfy ` <*> + <*> | + pure (\u1 -> (\u2 -> u1)) | ` pure 'c' ` satisfy