ansible/dhall/Prelude/DirectoryTree/Tree/makeTree.dhall
2024-11-26 00:55:56 -05:00

32 lines
951 B
Text

{-|
@makeTree tree make parents x@ places the tree @x@ below the directory @parent@.
@parent@ is given as a list of 'Metadata' values where each of those will be
used to create the respective level of the directory tree.
-}
let Make =
missing
sha256:235d511ed943dded33b46b1717df263037329394e27fb4b9c677eda5af924458
? ./Make.dhall
let Metadata =
missing
sha256:8c240a00094238a73904af63ac0924b3e6aba1655312f20a2a27f88554e2febe
? ../Entry/Metadata.dhall
let makeTree
: forall (tree : Type) -> Make tree -> List Metadata -> tree -> tree
= \(tree : Type) ->
\(make : Make tree) ->
\(parents : List Metadata) ->
\(leaf : tree) ->
List/fold
Metadata
parents
tree
( \(directory : Metadata) ->
\(result : tree) ->
make.directory (directory /\ { content = [ result ] })
)
leaf
in makeTree