Skip to content

Instantly share code, notes, and snippets.

View agocorona's full-sized avatar
💭
Status at .... https://gitter.im/Transient-Transient-Universe-HPlay/Lobby

Alberto agocorona

💭
Status at .... https://gitter.im/Transient-Transient-Universe-HPlay/Lobby
View GitHub Profile
@agocorona
agocorona / Transient.cont.hs
Last active April 26, 2023 08:00
Optimized, simplified continuation monad that implement all the Transient effects (except Web, logging and distributed computing) with mock up implementation of some of them (https://github.com/transient-haskell/transient) Parallelism, concurrency, reactive, streaming, non-determinism, backtracking exceptions, state, early termination
{-# LANGUAGE MultiParamTypeClasses, ExistentialQuantification, ScopedTypeVariables, FlexibleInstances, FlexibleContexts, UndecidableInstances #-}
module TransientCont where
-- some imports
import Control.Applicative
import Control.Monad.IO.Class
import Control.Monad.Trans
-- hplayground by Alberto modified by mark mann
-- keeps score for up to nine players for many rounds
-- identify user and record round by round results
{-# LANGUAGE DeriveDataTypeable, FlexibleInstances, UndecidableInstances #-}
module Main where
import Haste
import Haste.Foreign
main= keep' $ do
r <- choose [1..10]
liftIO $ print r
no user package environment file found at /devel/transient
no user package environment file found at /devel/transient
Searching for eta in path.
Found eta at /root/.local/bin/eta
/root/.local/bin/eta --numeric-version
/root/.local/bin/eta is version 0.0.9.1
no user package environment file found at /devel/transient
Searching for eta-pkg in path.
Found eta-pkg at /root/.local/bin/eta-pkg
/root/.local/bin/eta-pkg --version
@agocorona
agocorona / Transient-cont.hs
Created July 18, 2017 23:53
a reformulation of Transient using a modified continuation monad
{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances, UndecidableInstances #-}
import Control.Applicative
import Control.Monad.IO.Class
import Control.Monad.Trans
import GHC.Conc
import System.IO.Unsafe
import Data.IORef
import Control.Concurrent.MVar
import qualified Data.Map as M
import Data.Typeable
{-# LANGUAGE RecordWildCards #-}
module Main where
import Unsafe.Coerce
import Transient.Internals
import Transient.Indeterminism
import Control.Monad.State
import System.IO.Unsafe
import Control.Monad
import Control.Applicative
{-# LANGUAGE RecordWildCards #-}
module Main where
import Unsafe.Coerce
import Transient.Internals
import Transient.Indeterminism
import Control.Monad.State
import System.IO.Unsafe
import Control.Monad
import Control.Applicative
@agocorona
agocorona / webapp.hs
Created July 7, 2017 11:17
webapp.hs from transient-examples recoded to make work the stop button in the last example
#!/usr/bin/env ./execthirdline.sh
-- compile it with ghcjs and execute it with runghc
-- set -e && port=`echo ${3} | awk -F/ '{print $(3)}'` && docker run -it -p ${port}:${port} -v $(pwd):/work agocorona/transient bash -c "mkdir -p static && ghcjs /work/${1} -o static/out && runghc /work/${1} ${2} ${3}"
-- usage: ./webapp.hs -p start/<docker ip>/<port>
{-# LANGUAGE CPP #-}
module Main where
-- hplayground by mark mann
-- identify user and record round by round results
{-# LANGUAGE DeriveDataTypeable, FlexibleInstances, UndecidableInstances #-}
module Main where
import Haste
import Haste.Foreign
import Haste.LocalStorage
import Haste.JSON (JSON(..))
from agocorona/transient-0.4.4.1