 Opa also provides sessions which encapsulate an imperative state and communicate using message passing, similar to Erlang processes.Opa provides many structures or functions that are common in web development, as first-class objects,
for instance HTML and parsers, based on Parsing Expression Grammars.Because of this adhesion between the language and web-related concepts, Opa is not intended for non-web applications (for instance desktop applications).