module WordDef ( WordFullDef(WordFullDef), WordDefHeader(WordDefHeader), WordName(WordName), WordType(WordType), WordSentence(..), renderWordList, renderHeader, renderFullDef ) where data WordFullDef = WordFullDef WordDefHeader [WordSentence] deriving Show data WordSentence = WordDefSentence String | WordExampleSentence String deriving Show data WordDefHeader = WordDefHeader WordName WordType deriving Show data WordName = WordName String deriving Show data WordType = WordType String deriving Show renderFullDef :: WordFullDef -> String renderFullDef w = show w renderHeader :: WordDefHeader -> String renderHeader (WordDefHeader n t) = (getNameString n) ++ (getTypeString t) getNameString :: WordName -> String getNameString (WordName s) = s getTypeString :: WordType -> String getTypeString (WordType s) = s renderWordList :: [WordDefHeader] -> String renderWordList [] = "" renderWordList (x:xs) = (renderHeader x) ++ "\n" ++ (renderWordList xs)