app :: MonadWidget t m => App t m () app = do ti <- textInput $ TextInputConfig "range" "4" never (constDyn $ "min" =: "1" <> "max" =: "6") n <- holdDyn (4::Int) (read <$> updated (value ti)) let f = reflexDia (def & sizeSpec .~ D.mkSizeSpec2D (Just 600) (Just 600)) . example el "div" $ widgetHoldHelper f 4 (updated n) return () hilbert 0 = mempty hilbert n = hilbert' (n-1) D.# D.reflectY <> D.vrule 1 <> hilbert (n-1) <> D.hrule 1 <> hilbert (n-1) <> D.vrule (-1) <> hilbert' (n-1) D.# D.reflectX where hilbert' m = hilbert m D.# D.rotateBy (1/4) example n = D.frame 1 . D.lw D.thin . D.lc D.darkred . D.fc D.white . D.strokeT $ hilbert n