XtF      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDE Safe-Inferred FGHIJ FGHIJNoneThe state of the game: informations on players the status of a rule. *An informationnal structure about a rule: "the different types of rules )-type of rule that just mofify the game state *Ma rule can assess the legality either immediatly of later through a messsage /9type of rule to assess the legality of a given parameter 6!data associated with each events E events names Z events types ^stores the variable's data c)a container for a variable name and type ean Exp allows the player'0s rule to have access to the state of the game. 6 | it is a compositional algebra defined with a GADT. 'an equality that tests also the types.   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~KLMNOPQRST  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~}|e{zyxwvutsrqponmlkjihgfcd^_`ab]Z\[SYXWVUTRQPONMELKJIHGF6CA?=;97DB@><:8012345/*-+.,)"'%#(&$ ! ,    !"'%#(&$)*-+.,/0123456CA?=;97DB@><:8ELKJIHGFMNOPQRSYXWVUTZ\[]^_`abcde{zyxwvutsrqponmlkjihgf|}~KLMNOPQRSTNoneevaluate an expression. >Replaces all instances of a value in a list by another value. Value to search Value to replace it with  Input list  Output list None5VArrayVar is an indexed array with a signal attached to warn when the array is filled. ieach indexed elements starts empty (value=Nothing), and when the array is full, the signal is triggered. lThis is useful to wait for a serie of events to happen, and trigger a computation on the collected results. variable creation variable reading variable writing delete variable initialize an empty ArrayVar einitialize an empty ArrayVar, registering a callback that will be triggered when the array is filled 6initialize an empty ArrayVar, registering a callback. _the callback will be triggered when the array is filled, and then the ArrayVar will be deleted qstore one value and the given index. If this is the last filled element, the registered callbacks are triggered. 4get the messsage triggered when the array is filled get the association array 6get the association array with only the filled values  register a callback on an event <register a callback on an event, disregard the event number =set an handler for an event that will be triggered only once =set an handler for an event that will be triggered only once 8broadcast a message that can be catched by another rule subscribe on a message ?on the provided schedule, the supplied function will be called ;activate a rule: change its state to Active and execute it mreject a rule: change its state to Suppressed and suppresses all its environment (events, variables, inputs) ' the rule can be activated again later 6add a rule to the game, it will have to be activated Mtriggers a choice input to the user. The result will be sent to the callback %the same, disregard the event number 1the same, suppress the event after first trigger %the same, disregard the event number Atriggers a choice input to the user, using an enumerate as input %the same, disregard the event number 1the same, suppress the event after first trigger Mtriggers a string input to the user. The result will be sent to the callback Oasks the player pn to answer a question, and feed the callback with this data. Oasks the player pn to answer a question, and feed the callback with this data. !set victory to a list of players give victory to one player  Get the total number of players  outputs a message to one player Jallows a rule to retrieve its self number (for auto-deleting for example) 4This rule will activate automatically any new rule. A rule will be always legal A rule will be always illegal [This rule establishes a list of criteria rules that will be used to test any incoming rule 4 the rules applyed shall give the answer immediatly Aactive metarules are automatically used to evaluate a given rule Cany incoming rule will be activate if all active meta rules agrees grule that performs a vote for a rule on all players. The provided function is used to count the votes. 1assess the vote results according to a unanimity 0assess the vote results according to a majority grule that performs a vote for a rule on all players. The provided function is used to count the votes, Qit will be called when every players has voted or when the time limit is reached ,create a value initialized for each players $manages players joining and leaving %create and modify values for players &Player p cannot propose anymore rules La rule can autodelete itself (generaly after having performed some actions) $All rules from player p are erased: a default rule fffcNone A rule that does nothing &A rule that says hello to all players account variable name 'Create a bank account for each players  each player wins X Ecu each day  you can also try with minutly, monthly2 as recurrences and everything in time-recurrence 3a player wins X Ecu if a rule proposed is accepted  .a player can transfer money to another player  delete a rule  player pn is the king  @Monarchy: only the king decides which rules to accept or reject Revolution! Hail to the king! g This rule suppresses the democracy (usually rules 1 and 2), installs the king and activates monarchy. >set the victory for players having more than X accepted rules 2will display the time to all players in 5 seconds                     None5 !"#$%&'()*+,-./0123456789:;<=>?@ABCDE5 !"#$%&'()*+,-./0123456789:;<=>?@ABCDE5 !"#$%&'()*+,-./0123456789:;<=>?@ABCDE1 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEU       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPJKLMQNRSTUVWXPYZ[\\]^_``abcdefghijklmn[opqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNONomyx-Rules-0.0.2Paths_Nomyx_RulesLanguage.Nomyx.ExpressionLanguage.Nomyx.EvaluationLanguage.Nomyx.RuleExamplesTestversion getBinDir getLibDir getDataDir getLibexecDirgetDataFileNameGamegameNamerulesplayers variableseventsoutputsvictory currentTime PlayerInfo playerNumber playerName RuleStatusRejectPendingActiveRulerNumberrName rDescription rProposedBy rRuleCode rRuleFuncrStatus rAssessedByRuleFuncVoidRulevoidRule PlayerRule playerRuleRuleRuleruleRule NoParamRule RuleResponseMsgRespmsgRespBoolRespboolResp OneParamRule EventHandlerEH eventNumber ruleNumbereventhandler EventData VictoryData victoryDataInputStringDatainputStringDataInputChoiceDatainputChoiceData MessageData messageDataTimeDatatimeDataRuleDataruleData PlayerData playerDataEventVictory InputString InputChoiceMessageTimeRuleEvPlayerEvRule RuleEventDeletedModifiedAddedRejected ActivatedProposedLeaveArriveOutputVar vRuleNumbervNamevDataVExpSelfRuleNumber CurrentTimeBindConst GetPlayers SetVictoryGetRules ModifyRuleDelRuleAddRule RejectRule ActivateRule ProposeRule SendMessage DelAllEventsDelEventOnEventWriteVarReadVarDelVarNewVarCodeGameNameVarName EventNumberRuleCodeRuleTextRuleName RuleNumber PlayerName PlayerNumber===evalExp triggerEvent triggerChoiceexecChoiceHandler findEvent findChoiceoutputS getFreeNumber evProposeRuleevActivateRule evRejectRule evAddRule evDelRule evModifyRule addPlayer delPlayer evInputChoice evTriggerTime delVarsRule delEventsRule replaceWith traceState ForAgainstAgainstForArrayVarnewVarnewVar_readVarreadVar_writeVar writeVar_ modifyVardelVardelVar_ newArrayVar newArrayVar'newArrayVarOnce putArrayVargetArrayVarMessagegetArrayVarDatagetArrayVarData' delArrayVaronEventonEvent_ onEventOnce onEventOnce_delEvent delEvent_ delAllEvents sendMessage sendMessage_ onMessage onMessageOnceschedule schedule_ schedule' schedule'_ activateRule activateRule_ rejectRule rejectRule_getRulesgetActiveRulesgetRulegetRulesByNumbers getRuleFuncsaddRuleaddRule_ suppressRule suppressRule_suppressAllRules modifyRule inputChoiceinputChoiceHeadinputChoiceEnum inputString onInputChoiceonInputChoice_onInputChoiceOnceonInputChoiceOnce_onInputChoiceEnumonInputChoiceEnum_onInputChoiceEnumOnce_ onInputStringonInputString_onInputStringOnce_ setVictory giveVictory getPlayersgetPlayersNumbergetAllPlayerNumbersoutput outputAllgetCurrentTimegetSelfRuleNumber autoActivate immutableRulelegalillegalsimpleApplicationRule autoMetarulesapplicationMetaRule applyRulevote unanimitymajorityactivateOrRejectvoteWithTimeLimitcreateValueForEachPlayercreateValueForEachPlayer_modifyValueOfPlayermodifyAllValues noPlayPlayer autoDelete eraseAllRules mapMaybeM parse822TimesndMaybeandrrandrrs&&. defaultRulenothing helloWorldaccountscreateBankAccount winXEcuPerDaywinXEcuOnRuleAccepted moneyTransferdelRulemakeKingkingmonarchy revolution victoryXRules displayTimeChoice2YouMeChoiceSarkozyHollanddate1date2testGametestRule evalRuleFuncexecRuleFuncEventexecRuleFuncGameexecRuleFuncEventGame execRuleFunctestsallTeststestVar1 testVarEx1testVar2 testVarEx2testVar3 testVarEx3testVar4 testVarEx4testVar5 testVarEx5testSingleInputtestSingleInputExtestInputStringtestInputStringExtestSendMessagetestSendMessageExtestSendMessage2testSendMessageEx2testUserInputWritetestUserInputWriteExtestActivateRuletestActivateRuleExtestAutoActivateEx unanimityRuleapplicationMetaRuleRule gameUnanimitytestUnanimityVotetestUnanimityVoteEx testTimeEventtestTimeEventExtestTimeEvent2testTimeEventEx2timedUnanimityRulegameTimedUnanimitytestTimedUnanimityVotetestTimedUnanimityVoteExcatchIObindirlibdirdatadir libexecdir $fShowGame $fOrdRule$fEqRule$fShowRuleFunc$fOrdEventHandler$fEqEventHandler$fShowEventHandler$fEqVar $fShowVar $fMonadExp