Skip to content

Instantly share code, notes, and snippets.

-- base
import Control.Exception
import Data.List
-- stm
import Control.Concurrent.STM.TVar
import Control.Monad.STM
import Control.Monad
import Data.IORef
import Control.Monad.Trans.Reader
import Control.Monad.IO.Class
newtype Restore a = Restore { rR :: ReaderT (IORef (IO ())) IO a }
deriving (Functor, Applicative, MonadIO)
import Control.Monad.Reader
type Tst m = ReaderT () (ReaderT Int m)
f :: Tst m ()
f = undefined
f1 :: ReaderT () m () -> ReaderT () m ()
f1 ev = f >> lift ask >>= \c -> _ >> ev
title
Список фильмов которые надо посмотреть или пересмотреть
  • Преследование (1998)
  • Нирвана (1997)
  • Восход Люцифера (1980)
  • Пробуждение моего демонического брата (1969)
  • Торжественное открытие храма наслаждений (1954)
  • Трудно быть богом (2013)
{-# LANGUAGE ExistentialQuantification #-}
-- base
import Control.Exception
import Control.Concurrent.MVar
import Control.Monad
import Data.IORef
import System.IO.Unsafe
module CoCoCoOutput where
import Control.Exception
import Control.Concurrent.Async
import Control.Concurrent.Chan
import Control.Monad
import Data.Function
-- base
import Control.Applicative
import Control.Monad
import Data.Maybe
import Data.Word
import Data.Proxy
import GHC.TypeLits
{-# LANGUAGE Rank2Types #-}
module Managed where
-- base
import Data.IORef
-- exceptions
import Control.Monad.Catch
main :: IO ()
main = do
tid1 <- forkIO $ magicMask $ do
localTid <- myThread
tid2 <- forkIO $ do
threadDelay (42 * 42)
killThread localTid
forever $ threadDelay 777
tid3 <- forkIO $ do
data Linker = Emplty | Dash | Equal | Octothrope
deriving (Eq, Ord, Show)
data Polygon edge vertex
= Polygon !vertex !edge !(Polygon edge vertex)
| Line !vertex !edge !vertex
deriving (Eq, Ord, Show, Functor, Foldable, Traversable)
data SignumForm = Prefix | Postfix | Binary
deriving (Eq, Ord, Show)