+++ /dev/null
-module hellogast\r
-\r
-import gast\r
-\r
-derive bimap []\r
-\r
-//derive ggen State\r
-derive ggen Input\r
-//derive ggen Output\r
-\r
-derive gEq State\r
-derive gEq Input\r
-derive gEq Output\r
-\r
-derive genShow State\r
-derive genShow Input\r
-derive genShow Output\r
-\r
-derive gLess State\r
-\r
-:: State = S0 | S1 | S2\r
-:: Input = Coin | Button\r
-:: Output = Tea | Coffee | Coin`\r
-\r
-coffee1 :: State Input -> [Trans Output State] \r
-coffee1 S0 Coin = [Pt [Coin`] S0, Pt [] S1] \r
-coffee1 S1 Coin = [Pt [] S2] \r
-coffee1 S1 Button = [Pt [Tea] S0]\r
-coffee1 S2 Button = [Pt [Coffee] S0] \r
-coffee1 s input = [Pt [] s]\r
-\r
-m1 :: Int Input -> ([Output], Int)\r
-m1 n Coin = ([], n+1)\r
-m1 1 Button = ([Tea], 0)\r
-m1 2 Button = ([Coffee], 0)\r
-m1 n input = ([], n)\r
-\r
-Start world = testConfSM [] coffee1 S0 m1 0 (\_ . 0) world\r