Skip to content

Instantly share code, notes, and snippets.

@danidiaz
Created October 26, 2013 09:15
Show Gist options
  • Select an option

  • Save danidiaz/7167189 to your computer and use it in GitHub Desktop.

Select an option

Save danidiaz/7167189 to your computer and use it in GitHub Desktop.
inside, from lens
{-# LANGUAGE TemplateHaskell #-}
import Control.Lens
import Data.Tree
data Person = Person {
_name :: String,
_years :: Int
} deriving Show
$(makeLenses ''Person)
main = do
let sillyfun b | b = Person "Wanda" 36
| otherwise = Person "Rodrigo" 34
newfun = sillyfun^.inside years
newfun' = sillyfun & inside years .~ (\b -> if b then 45 else 55)
putStrLn . show $ newfun True
putStrLn . show $ newfun' True
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment