module Data.Help (
	Help(..),
	indent, indentHelp, detailed, indented
	) where

import Data.Text (Text)
import qualified Data.Text as T

class Help a where
	brief :: a -> Text
	help :: a -> [Text]

indent :: Text -> Text
indent = T.cons '\t'

indentHelp :: [Text] -> [Text]
indentHelp [] = []
indentHelp (h:hs) = h : map indent hs

detailed :: Help a => a -> [Text]
detailed v = brief v : help v

indented :: Help a => a -> [Text]
indented = indentHelp . detailed