package main import ( "fmt" ) func opRun(val1 value, envs []environ) (value, bool) { if !isList(val1) { panic(fmt.Errorf("run: %s (%s)", errListExpected, toString(val1))) } return interpret(&scanProvider{isList: true, list: val1.list}, envs) } func opIf(val1, val2, val3 value, envs []environ) (value, bool) { if toBool(val1) { return opRun(val2, envs) } return opRun(val3, envs) }