summaryrefslogtreecommitdiff
path: root/testsuite/tests/primops/should_run/UnliftedMutVar1.hs
blob: 12d77e67121fc91d3df626462a4a8d94d7f62f60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE UnboxedTuples #-}

module Main where

import GHC.Exts
import GHC.IO

main :: IO ()
main = do
  res <- IO \ s0 ->
    case newMutVar# (41 :: Int) s0 of
      (# s1, mvar #) ->
        case newMutVar# mvar s1 of
          (# s2, mvarmvar #) ->
            case writeMutVar# mvar (17 :: Int) s2 of
              s3 ->
                case readMutVar# mvarmvar s3 of
                  (# s4, read_mvar #) ->
                    readMutVar# read_mvar s4
  print res