packages feed

unicode-0.0: vis/Visualize/Data/Char/Frame.hs

module Visualize.Data.Char.Frame where

import Visualize.Utility (printGrid, )

import qualified Data.Char.Frame as Frame

import Control.Applicative (pure, liftA2, )
import Data.Traversable (sequenceA, )


visualize :: IO ()
visualize = do
   printGrid
      (\v h -> Frame.simple $ Frame.Parts v h)
      (sequenceA $ pure [False, True])
      (sequenceA $ pure [False, True])

   printGrid
      (\(dv,v) (dh,h) ->
          maybe '?' id $
          Frame.doubleMaybe (Frame.Directions dv dh) (Frame.Parts v h))
      (liftA2 (,)
          [False, True] (sequenceA $ pure [minBound .. maxBound]))
      (liftA2 (,)
          [False, True] (sequenceA $ pure [minBound .. maxBound]))

   printGrid
      (\v h -> Frame.weighted $ Frame.Parts v h)
      (sequenceA $ pure [minBound .. maxBound])
      (sequenceA $ pure [minBound .. maxBound])