Module

Data.Lens.Barlow

Package
purescript-barlow-lens
Repository
sigma-andex/purescript-barlow-lens

#ConstructBarlowGeneric Source

class ConstructBarlowGeneric (attributes :: TList) p input output | attributes input -> output where

Members

Instances

#ConstructBarlow Source

class ConstructBarlow (attributes :: TList) p input output | attributes input -> output where

Members

Instances

#Barlow Source

class Barlow (string :: Symbol) p input output | string -> input output where

Members

  • barlow :: Proxy string -> Optic' p input output

    Type-safe lens for zooming into a deeply nested record

    sky = { zodiac: { virgo: { alpha: "Spica" } } }
    view (barlow (key :: _ "zodiac.virgo.alpha")) sky
    -- Spica 
    over (barlow (key :: _ "zodiac.virgo.alpha")) toUpper sky
    -- { zodiac: { virgo: { alpha: "SPICA" } } }
    

Instances

#key Source

key :: forall k. Proxy k

Just an alias for Proxy to make selection a bit nicer