introduced shader program monad