dhall-nix-lib/Function/composeExtensions.dhall

18 lines
526 B
Text

λ(nix : ../NixPrelude.dhall) →
let Set = ../Set/Type.dhall
let Set/mergeAttrs = ../Set/mergeAttrs.dhall nix
let composeExtensions
: (Set → Set → Set) → (Set → Set → Set) → Set → Set → Set
= λ(f : Set → Set → Set) →
λ(g : Set → Set → Set) →
λ(final : Set) →
λ(prev : Set) →
let fApplied = f final prev
let prevp = Set/mergeAttrs prev fApplied
in Set/mergeAttrs fApplied (g final prevp)
in composeExtensions