taskell-1.3.5.0: src/Data/Taskell/Subtask/Internal.hs
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE OverloadedStrings #-}
module Data.Taskell.Subtask.Internal where
import ClassyPrelude
import Control.Lens (makeLenses, (%~))
data Subtask = Subtask
{ _name :: Text
, _complete :: Bool
} deriving (Show, Eq)
type Update = Subtask -> Subtask
-- create lenses
$(makeLenses ''Subtask)
-- operations
blank :: Subtask
blank = Subtask "" False
new :: Text -> Bool -> Subtask
new = Subtask
toggle :: Update
toggle = complete %~ not