Hoogle Search

Within LTS Haskell 24.6 (ghc-9.10.2)

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

  1. (.$) :: 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!"
    

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

    row-types Data.Row.Records

    Type level Row append

  3. (.+) :: 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)

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

    row-types Data.Row.Records

    Type level Row element removal

  5. (.-) :: 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.

  6. 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.

  7. (.//) :: 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'.

  8. (.==) :: forall (l :: Symbol) a . KnownSymbol l => Label l -> a -> Rec (l .== a)

    row-types Data.Row.Records

    The singleton record

  9. type family (r :: Row k) .\ (l :: Symbol)

    row-types Data.Row.Records

    Does the row lack (i.e. it does not have) the specified label?

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

    row-types Data.Row.Variants

    Type level label fetching

Page 39 of many | Previous | Next