func(prepare,{
  block(

    sub({
      let(name,[x]):
      let(p1,[y]):
      let(p2,[z]):

      print_{
        func({name},{[x]*[y]})
      :
        func({name}2,{
          sub({
            let(a,{p1}):
            let(b,{p2}):
            print_[a]+[b]+[x]+[y]
          })
        })
      :
        print_()
      }

    })
  )
}):

print_prepare(cow,1,2):
print_prepare(pig,`hello ',`to '):

print_cow(3,4)                      ,\n:
print_pig(`the ',`world')           ,\n:

print_cow2(5,6)                      ,\n:
print_pig2(`the ',`galaxy')          ,\n: