gcodehs-0.1.2.0: src/Data/GCode/Generate/ExamplesMonad.hs
module Data.GCode.Generate.ExamplesMonad where
import Control.Monad
import Control.Monad.Trans.Class
import Control.Monad.Trans.State
import Data.GCode.Generate (x, xy)
import Data.GCode.Monad
xprog :: Program
xprog = prog $ do
move (x 10)
rapid (xy 15 15)
move (xy 0 0)
coolantStop'
withState :: Program
withState = prog $ do
void $ flip runStateT 0 $ do
val <- get
lift $ rapid (x val)
forM_ (zip [0..10] [-10..0]) (move . uncurry xy)