  Much work has been done to give semantics to probabilistic programming
languages. In recent years, most of the semantics used to reason about
probabilistic programs fall in two categories: semantics based on Markov
kernels and semantics based on linear operators.
  Both styles of semantics have found numerous applications in reasoning about
probabilistic programs, but they each have their strengths and weaknesses.
Though it is believed that there is a connection between them there are no
languages that can handle both styles of programming.
  In this work we address these questions by defining a two-level calculus and
its categorical semantics which makes it possible to program with both kinds of
semantics. From the logical side of things we see this language as an
alternative resource interpretation of linear logic, where the resource being
kept track of is sampling instead of variable use.
