From a6d859c27392c147d37a18b3d53fef5bc41f0146 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Thu, 9 Jun 2016 09:51:15 -0700 Subject: [PATCH] ui: comments --- hledger-ui/Hledger/UI/UITypes.hs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hledger-ui/Hledger/UI/UITypes.hs b/hledger-ui/Hledger/UI/UITypes.hs index 658d1a2ac..3164293d2 100644 --- a/hledger-ui/Hledger/UI/UITypes.hs +++ b/hledger-ui/Hledger/UI/UITypes.hs @@ -68,10 +68,11 @@ data AppState = AppState { -- | hledger-ui screen types & instances. -- Each screen type has generically named initialisation, draw, and event handling functions, -- and zero or more uniquely named screen state fields, which hold the data for a particular --- instance of this screen. The latter create partial functions, so take care. +-- instance of this screen. Note the latter create partial functions, which means that some invalid +-- cases need to be handled, and also that their lenses are traversals, not single-value getters. data Screen = AccountsScreen { - sInit :: Day -> Bool -> AppState -> AppState -- ^ function to update the screen's state + sInit :: Day -> Bool -> AppState -> AppState -- ^ function to initialise or update this screen's state ,sDraw :: AppState -> [Widget] -- ^ brick renderer for this screen ,sHandle :: AppState -> Vty.Event -> EventM (Next AppState) -- ^ brick event handler for this screen -- state fields. These ones have lenses: @@ -124,7 +125,7 @@ data RegisterScreenItem = RegisterScreenItem { type NumberedTransaction = (Integer, Transaction) --- needed for lenses +-- dummy monoid instance needed for lenses for now since the List fields are not common across constructors instance Monoid (List a) where mempty = list "" V.empty 1