module SquareCube where import Control.MonadZero (guard) import Data.Array ((..)) import Data.Int (pow) import Data.Tuple (Tuple(..)) import Prelude mySqr :: Array Int mySqr = do x <- 1 .. 5 pure $ pow x 2 myCube :: Array Int myCube = do y <- 1 .. 5 pure $ pow y 3 mySqrCube :: Array (Tuple Int Int) mySqrCube = do x <- mySqr y <- myCube guard $ x < 50 guard $ y < 50 pure $ Tuple x y