packages feed

literatex-0.1.0.0: examples/lowlevel.hs

{-# LANGUAGE OverloadedStrings #-}

module Main (main) where

-- https://hackage.haskell.org/package/base
import System.IO (stdout)

-- https://hackage.haskell.org/package/literatex
import qualified LiterateX
import qualified LiterateX.Renderer as Renderer
import qualified LiterateX.Types.SourceFormat as SourceFormat

------------------------------------------------------------------------------

demo :: String
demo = unlines
    [ "-- Demo"
    , "-- ===="
    , "--"
    , "-- This source code is embedded in the example, but it could come from"
    , "-- a database or API call."
    , ""
    , "module Main (main) where"
    , ""
    , "main :: IO ()"
    , "main = putStrLn \"Hello!\""
    ]

------------------------------------------------------------------------------

main :: IO ()
main = LiterateX.runIO
    SourceFormat.DoubleDash
    (Renderer.defaultOptionsFor "haskell")
    (LiterateX.sourceString demo)
    (LiterateX.sinkHandle stdout)