= Design Concept <result-concept>

The design concept described in @design-iteration-2 focuses on visual function
composition. It proposes a function editor that features all the basic
functionalities needed to create functional applications in a block-based
fashion.

The editor allows learners to approach functional programming through blocks
instead of code. The type-inference engine offers much guidance, especially
the automatically generated type holes, which can help to understand how e.g.
parametric polymorphism or currying works. 

But other aspects not covered in the concept are also essential to create modern
functional programs. For example, a robust type system with support for sum
types, type classes, etc., can be found in most current functional programming
languages.

Given that the project's goal is to allow beginners to approach functional
programming more easily, the concept should also address a clear transition to
code-based programming. One possibility to integrate this idea has been
described in a possible outlook in @outlook-visual-textual.
