Well, I'll start with my first ideas: every line in the code is a function, when a program is executed the first line is run using user input as arguments and printing return values. Functions could be defined without explicitly listing arguments, you can still access them using numbers (1 is the first argument, 2 the second one, 0 is a recursive call?). I also thought about using overloading with haskell type system, as Zgarb said, this is probably the most interesting thing to consider.
These are just random ideas, maybe we could list a few of these without worrying if they are not good or complete enough, and then we'll start to think more seriously about the structure this language should have