Hoogle Search

Within LTS Haskell 24.28 (ghc-9.10.3)

Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.

  1. type family (l :: Row k) .\\ (r :: Row k) :: Row k

    row-types Data.Row.Internal

    Type level Row difference. That is, l .\\ r is the row remaining after removing any matching elements of r from l.

  2. type family (r :: Row k) .! (t :: Symbol) :: k

    row-types Data.Row.Records

    Type level label fetching

  3. (.!) :: forall (l :: Symbol) (r :: Row Type) . KnownSymbol l => Rec r -> Label l -> r .! l

    row-types Data.Row.Records

    Record selection

  4. (.$) :: forall (l :: Symbol) (r' :: Row Type) t (r :: Row Type) x . (KnownSymbol l, (r' .! l) ≈ t) => (Rec ((l .== t) .+ r) -> x) -> (Label l, Rec r') -> Rec r -> x

    row-types Data.Row.Records

    This function allows one to do partial application on a function of a record. Note that this also means that arguments can be supplied in arbitrary order. For instance, if one had a function like

    xtheny r = (r .! #x) <> (r .! #y)
    
    and a record like
    greeting = #x .== "hello " .+ #y .== "world!"
    
    Then all of the following would be possible:
    >>> xtheny greeting
    "hello world!"
    
    >>> xtheny .$ (#x, greeting) .$ (#y, greeting) $ empty
    "hello world!"
    
    >>> xtheny .$ (#y, greeting) .$ (#x, greeting) $ empty
    "hello world!"
    
    >>> xtheny .$ (#y, greeting) .$ (#x, #x .== "Goodbye ") $ empty
    "Goodbye world!"
    

  5. type family (l :: Row k) .+ (r :: Row k) :: Row k

    row-types Data.Row.Records

    Type level Row append

  6. (.+) :: forall (l :: Row Type) (r :: Row Type) . FreeForall l => Rec l -> Rec r -> Rec (l .+ r)

    row-types Data.Row.Records

    Record disjoint union (commutative)

  7. type family (r :: Row k) .- (s :: Symbol) :: Row k

    row-types Data.Row.Records

    Type level Row element removal

  8. (.-) :: forall (l :: Symbol) (r :: Row Type) . KnownSymbol l => Rec r -> Label l -> Rec (r .- l)

    row-types Data.Row.Records

    Record restriction. Remove the label l from the record.

  9. type family (l :: Row k) .// (r :: Row k) :: Row k

    row-types Data.Row.Records

    The overwriting union, where the left row overwrites the types of the right row where the labels overlap.

  10. (.//) :: forall (r :: Row Type) (r' :: Row Type) . Rec r -> Rec r' -> Rec (r .// r')

    row-types Data.Row.Records

    Record overwrite. The operation r .// r' creates a new record such that:

    • Any label that is in both r and r' is in the resulting record with the type and value given by the fields in r,
    • Any label that is only found in r is in the resulting record.
    • Any label that is only found in r' is in the resulting record.
    This can be thought of as r "overwriting" r'.

Page 42 of many | Previous | Next