01/13/2012. From a lecture by Professor John Ousterhout at Stanford, class CS140
Here's today's thought for the weekend. A little bit of slope makes up for a lot of Y-intercept.
[Laughter]
| {-# LANGUAGE RankNTypes #-} | |
| {-# LANGUAGE GeneralizedNewtypeDeriving #-} | |
| module Control.Distributed.Process.Lifted | |
| ( module Control.Distributed.Process | |
| , module Control.Distributed.Process.Lifted | |
| ) | |
| where | |
| import Control.Monad.Trans.Control |
| {-# LANGUAGE TypeFamilies #-} | |
| {-# LANGUAGE TypeApplications #-} | |
| {-# LANGUAGE DataKinds #-} | |
| {-# LANGUAGE TypeOperators #-} | |
| {-# LANGUAGE UndecidableInstances #-} | |
| {-# LANGUAGE ScopedTypeVariables #-} | |
| {-# LANGUAGE FlexibleContexts #-} | |
| {-# LANGUAGE AllowAmbiguousTypes #-} | |
| module Main where |
| -- in response to https://twitter.com/jfischoff/status/948768178070470656 | |
| {-# LANGUAGE TemplateHaskell #-} | |
| module Main where | |
| import Control.Concurrent (threadDelay) | |
| import Control.Monad.IO.Class (liftIO) | |
| import Data.Traversable (for) | |
| import Text.Printf (printf) | |
| import Control.Distributed.Process (Process, NodeId, spawn) | |
| import Control.Distributed.Process (SendPort, newChan, sendChan, receiveChan) |
| {-# LANGUAGE | |
| EmptyCase, | |
| DataKinds, | |
| PolyKinds, | |
| KindSignatures, | |
| GADTs, | |
| FlexibleContexts, | |
| FlexibleInstances, |
| {-# LANGUAGE DataKinds #-} | |
| {-# LANGUAGE PolyKinds #-} | |
| {-# LANGUAGE TypeOperators #-} | |
| {-# LANGUAGE UndecidableInstances #-} | |
| {-# LANGUAGE UnsaturatedTypeFamilies #-} | |
| import GHC.TypeLits | |
| import Prelude hiding (Functor, Semigroup) | |
| type Main = (Fizz <> Buzz) <$> (0 `To` 100) |