Notes.
We can treat unbound or polymorphic variables as unbound variables.
before:
Notes.
We can treat unbound or polymorphic variables as unbound variables.
before:
let recv = (client, maxlen) => { | |
let bytes = Bytes.create(maxlen); | |
let len = Unix.recv(client, bytes, 0, maxlen, []); | |
Bytes.sub_string(bytes, 0, len) | |
}; | |
let parse_top = top => { | |
let parts = Str.split(Str.regexp("[ \t]+"), top); | |
switch (parts) { |
#!/usr/bin/env stack | |
-- stack --resolver lts-10.0 script | |
{-# LANGUAGE OverloadedStrings #-} | |
import Text.XML | |
import qualified Data.Map.Strict as Map | |
main :: IO () | |
main = do | |
Document x (Element n a nodes) y <- Text.XML.readFile def "foo.html" | |
Text.XML.writeFile def "foo2.html" $ Document x (Element n a $ concatMap goN nodes) y |
{-# LANGUAGE DeriveGeneric #-} | |
{-# LANGUAGE OverloadedStrings #-} | |
module Main where | |
import Data.Foldable (for_) | |
import Data.Traversable (for) | |
import Control.Monad.IO.Class | |
-- build-depends: base, haskeline, optparse-applicative | |
-- -- for example parser |
/** | |
* Making promises | |
*/ | |
let okPromise = Js.Promise.make((~resolve, ~reject as _) => [@bs] resolve("ok")); | |
/* Simpler promise creation for static values */ | |
Js.Promise.resolve("easy"); | |
Js.Promise.reject(Invalid_argument("too easy")); |
import Control.Monad.IO.Class | |
import Control.Monad.Codensity | |
import System.IO | |
managedActions :: Codensity IO () | |
managedActions = do | |
input <- Codensity $ withFile "in.txt" ReadMode | |
output <- Codensity $ withFile "out.txt" WriteMode | |
contents <- liftIO $ hGetContents input |
{-# OPTIONS_GHC -Wall #-} | |
{-# LANGUAGE DeriveAnyClass #-} | |
{-# LANGUAGE DeriveDataTypeable #-} | |
{-# LANGUAGE LambdaCase #-} | |
{-# LANGUAGE OverloadedStrings #-} | |
{-# LANGUAGE PartialTypeSignatures #-} | |
module RegAlloc1 | |
( -- * Types | |
Var |
-- To run: | |
-- cabal repl -b pretty-simple | |
-- | |
-- Colorizing and pretty-printing ghci output | |
-- requires: pretty-simple | |
:set -interactive-print=Text.Pretty.Simple.pPrint | |
-- green bold lambdas and multiline mode | |
:set prompt "\ESC[1;32mλ: \ESC[m" | |
:set prompt-cont "\ESC[1;32mλ| \ESC[m" |