Module

Data.Lens.Barlow

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

#Barlow Source

class Barlow :: Symbol -> (Type -> Type -> Type) -> Type -> Type -> Type -> Type -> Constraintclass Barlow (string :: Symbol) p s t a b | string -> s t a b where

Members

  • barlow :: Proxy string -> Optic p s t a b

    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