= Abstract

Most visual programming tools used to introduce children & young adults to the programming world are based on the imperative paradigm.
Existing tools based on functional programming either lack a good user experience or hide critical concepts of the functional paradigm.

To address this gap, a visual, block-based tool for functional programming should be designed.
This project aims to find a visual design of such a tool and then prove its feasibility in a proof of concept application.

Existing visual programming tools are examined before creating a visual design.
The development of the design is approached in two iterations:
In a first step, concept drafts are based on researched tools and evaluated using a survey.
Then, a new concept is created using the received feedback and implemented in a proof of concept.

The created design concept focuses on function composition, guided by type holes that indicate the type required for a valid function definition. 

The implemented application proves that the proposed concept for function composition works as envisioned.
It includes an inference engine that determines the type of undefined parts of a function and is built using Electron.js & Haskell.

It is recommended that an additional project be conducted to implement missing features of the application so that it can be used in classrooms.

Keywords: Haskell, Functional Programming, Visual Programming

#pagebreak()