Abstract. Often, the semantics of languages are defined by the products that support their usage. The semantics are then determined by
the source code of those products, which often is a general-purpose programming language. This may lead to complications in defining a clean
semantics, for example because imperative notions slip into a declarative language. It is illustrated how block diagrams can be translated into
Haskell to define the semantics of a graphical language in terms of a textual programming language. This also allows the use of block diagrams
as a syntactic extension to Haskell and the use of Haskell as an action
language in block diagrams. Imperative notions can then be included
from the declarative perspective of Haskell, which is more constrained
and less prone to resulting in complicated semantics of interaction and
combination of the imperative and declarative.