where
      main' tc = do
        let ext = defaultExtension tc
        v <- flip runTCM tc $ do
                 open ("foo" ++ ext) [OWRITER, OCREAT]
                 put "100" "bar"
                 putcat "100" "bar"
                 v <- get "100"
                 close
                 return v
        print (v :: Maybe String)
where
      main' tc = do
        let ext = defaultExtension tc
        v <- flip runTCM tc $ do
                 open ("foo" ++ ext) [OWRITER, OCREAT]
                 put "100" "bar"
                 putcat "100" "bar"
                 v <- get "100"
                 close
                 return v
        print (v :: Maybe String)
where
      main' tc = do
        let ext = defaultExtension tc
        v <- flip runTCM tc $ do
                 open ("foo" ++ ext) [OWRITER, OCREAT]
                 put "100" "bar"
                 putcat "100" "bar"
                 v <- get "100"
                 close
                 return v
        print (v :: Maybe String)