lets + let | ` <|> | + <*> | | + <*> | | | + pure (\u1 -> (\u2 -> (\u3 -> u1 (u2 u3)))) | | | ` <*> | | | + pure cons | | | ` ref | | ` rec | ` pure (\u1 -> u1) + let | ` try | ` <*> | + <*> | | + pure cons | | ` <*> | | + <*> | | | + pure (\u1 -> (\u2 -> u1)) | | | ` pure 'a' | | ` satisfy | ` <*> | + <*> | | + pure cons | | ` <*> | | + <*> | | | + pure (\u1 -> (\u2 -> u1)) | | | ` pure 'b' | | ` satisfy | ` <*> | + <*> | | + pure cons | | ` <*> | | + <*> | | | + pure (\u1 -> (\u2 -> u1)) | | | ` pure 'c' | | ` satisfy | ` <*> | + <*> | | + pure cons | | ` <*> | | + <*> | | | + pure (\u1 -> (\u2 -> u1)) | | | ` pure 'd' | | ` satisfy | ` pure Term ` <*> + <*> | + pure cons | ` ref ` <*> + ref ` pure Term