Option type causes non-termination
Bug already reported via email, already sorted out by John:
Na toevoegen van trace berichtjes bij het maken van zo'n constructor bleek het probleem te zitten in de functie toPairMask in module iTasks.UI.Editor.Generic.
Hij wordt aangeroepen met Int 1 en een [] lijst. Daardoor matchen de eerste alternatieven niet, en wordt het alternatief gekozen voor meer dan 3 elementen. Dit leidt tot een oneindige recursie.
Als je | n>3 toevoegt aan dit alternatief, voorkom je dit. En abort het programma.
toPairMask wordt dus ergens aangeroepen met een verkeerde ariteit, waarschijnlijk 1 voor een lege lijst.
test:
module chat
import iTasks
Start :: *World -> *World Start world = startEngine myChat world
derive class iTask Options :: Options = Text String | Map String
myChat :: Task Options myChat = enterInformation "Type in a message: " []