Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {-# LANGUAGE TemplateHaskell #-}
- import Control.Lens
- import Control.Lens.Combinators
- data Container = Container { _slot1 :: Maybe String
- , _slot2 :: Maybe Int
- }
- deriving (Show)
- makeLenses ''Container
- setOrError g s val cont = case (cont ^. g) of
- Nothing -> Right (set s val cont)
- Just x -> Left "Error: Already defined"
- setSlot1 val = setOrError slot1 slot1 val
- setSlot2 val = setOrError slot2 slot2 val
- cont = Container (Just "") (Just 0)
- test = setOrError slot1 slot1 (Just "Foo") cont
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement