{ a, b }:
with import <nixpkgs> {};
let
runHaskell = name: deps: code: pkgs.runCommand name { buildInputs = [ (pkgs.haskellPackages.ghcWithPackages deps) ]; } ''
runhaskell ${pkgs.writeText "${name}.hs" code}
'';
in runHaskell "do-da-math" (ps: []) ''
{-# LANGUAGE OverloadedStrings #-}
module Main (main) where
import qualified Data.ByteString as BS
import qualified Data.ByteString.Char8 as BSC
import System.Environment
main :: IO ()
main = do
let
a :: Integer
a = ${a}
b :: Integer
b = ${b}
output <- getEnv "out"
BS.writeFile output (BSC.pack $ show (a * b))
''