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 DataKinds #-} | |
{-# LANGUAGE PolyKinds #-} | |
{-# LANGUAGE TypeOperators #-} | |
{-# LANGUAGE UndecidableInstances #-} | |
{-# LANGUAGE UnsaturatedTypeFamilies #-} | |
import GHC.TypeLits | |
import Prelude hiding (Functor, Semigroup) | |
type Main = (Fizz <> Buzz) <$> (0 `To` 100) |
{-# LANGUAGE | |
EmptyCase, | |
DataKinds, | |
PolyKinds, | |
KindSignatures, | |
GADTs, | |
FlexibleContexts, | |
FlexibleInstances, |
-- 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 TypeFamilies #-} | |
{-# LANGUAGE TypeApplications #-} | |
{-# LANGUAGE DataKinds #-} | |
{-# LANGUAGE TypeOperators #-} | |
{-# LANGUAGE UndecidableInstances #-} | |
{-# LANGUAGE ScopedTypeVariables #-} | |
{-# LANGUAGE FlexibleContexts #-} | |
{-# LANGUAGE AllowAmbiguousTypes #-} | |
module Main where |
{-# LANGUAGE RankNTypes #-} | |
{-# LANGUAGE GeneralizedNewtypeDeriving #-} | |
module Control.Distributed.Process.Lifted | |
( module Control.Distributed.Process | |
, module Control.Distributed.Process.Lifted | |
) | |
where | |
import Control.Monad.Trans.Control |