let cmd = {name = "Test"; command = someFun x y}
let myCoupling = gimmeFun()
printfn "%s" (myCoupling.command())
exec : unit -> ChoiceResult
and ChoiceResult = ChoiceType list * ChoiceExecution list
let alternativeState (gamestate : ChoiceType list) indexI newState =
|> List.map (fun item -> if item.index = indexI then {index=item.index; text = item.text; state = newState} else item)
let rec makeChoiceResultFromState (gamestate : ChoiceType list) () =
|> List.map (fun c -> {index=c.index; exec=makeChoiceResultFromState (alternativeState gamestate c.index Chosen)})
let c : ChoiceResult = (gamestate, choiceExec)
{index=0; text="1"; state=NotChosen}
{index=1; text="2"; state=NotChosen}
{index=2; text="3"; state=NotChosen}]
makeChoiceResultFromState gamestate ()
let (tpe, exe) = newGame()
let (tst, tst2) = (exe.[0].exec())
let (tst3, tst4) = (tst2.[1].exec())
printfn "Choice %s at index %i is %A" (tst3.[0].text)(tst3.[0].index)(tst3.[0].state)
printfn "Choice %s at index %i is %A" (tst3.[1].text)(tst3.[1].index)(tst3.[1].state)
printfn "Choice %s at index %i is %A" (tst3.[2].text)(tst3.[2].index)(tst3.[2].state)