Plan:
Für (fast) jeden Teilausdruck eine eigene („frische``) Typvariable ansetzen, Beziehungen zwischen Typen durch Constraints ausdrücken.
Inferenzregeln? Implementierung? -- Testfall:
\ f g x y -> if (f x y) then (x+1) else (g (f x True))