This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
cat > build.smi <<EOL | |
_require "basis.smi" | |
_require "smlnj-lib.smi" | |
EOL | |
cat > build.sml <<EOL | |
signature PACK_REAL = sig | |
type real |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- You need DeepSubsumption enabled in order for the example to compile. | |
{-# LANGUAGE DeepSubsumption #-} | |
{-# LANGUAGE GADTs #-} | |
{-# LANGUAGE TemplateHaskell #-} | |
{-# LANGUAGE UndecidableInstances #-} | |
module Eval where | |
import Control.Monad.State.Strict (StateT, evalStateT, gets, liftIO, modify', void) | |
import Data.Comp.Multi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
infix & +` *` | |
datatype ('a, 'b) stmt = | |
Assign of 'a * ('a, 'b) expr | |
| If of ('a, 'b) expr * ('b, 'a) stmt list * ('a, 'b) stmt list | |
and ('a, 'b) expr = | |
Stmt of ('a, 'a) stmt | |
| Int of 'b | |
| Bop of ('b, 'a) expr * ('a, 'b) expr |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ann "milletDiagnosticsIgnore all" in | |
./mltonlib/com/ssh/extended-basis/unstable/basis.mlb | |
./mltonlib/com/ssh/generic/unstable/lib.mlb | |
./mltonlib/com/ssh/generic/unstable/with/generic.sml | |
./mltonlib/com/ssh/generic/unstable/with/eq.sml | |
./mltonlib/com/ssh/generic/unstable/with/type-hash.sml | |
./mltonlib/com/ssh/generic/unstable/with/type-info.sml | |
./mltonlib/com/ssh/generic/unstable/with/hash.sml | |
./mltonlib/com/ssh/generic/unstable/with/uniplate.sml | |
./mltonlib/com/ssh/generic/unstable/with/ord.sml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
structure Fold = | |
struct | |
fun fold (a, f) g = g (a, f) | |
fun post (w, g) s = | |
w (fn (a, h) => s (a, g o h)) | |
fun step0 h (a, f) = | |
fold (h a, f) | |
fun step1 h (a, f) b = | |
fold (h (b, a), f) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$(SML_LIB)/basis/basis.mlb | |
$(SML_LIB)/basis/mlton.mlb | |
$(SML_LIB)/smlnj-lib/INet/inet-lib.mlb | |
$(SML_LIB)/cml/cml.mlb | |
server.sml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{-# LANGUAGE OverloadedStrings #-} | |
import Colog | |
import Control.Monad.IO.Class (MonadIO) | |
import Data.Text (Text) | |
foo :: (WithLog env Message m, MonadIO m) => m () | |
foo = do | |
logWarning "Hello" | |
logWarning "World" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{-# LANGUAGE ImplicitParams #-} | |
{-# LANGUAGE LambdaCase #-} | |
{-# LANGUAGE OverloadedStrings #-} | |
module SoundEager where | |
import Control.Monad (unless) | |
import Control.Monad.Primitive (PrimMonad, PrimState) | |
import Control.Monad.ST (runST) | |
import Data.Char (chr, ord) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// An example of cyclical mutable references in Rust using GhostCell. | |
/// Struct A contains mutable references to B and C and B has a | |
/// mutable reference to C and C has a mutable reference to B. | |
/// | |
/// Unfortunately, doing it this way means forgoing dot syntax for B and C, since | |
/// only Rc, Arc, and Pin can be used for self, not &'arena GhostCell<'id, Self>. | |
use bumpalo::Bump; | |
use ghost_cell::{GhostCell, GhostToken}; | |
struct A<'arena, 'id> { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{-# LANGUAGE ExistentialQuantification #-} | |
import Control.Concurrent.STM (STM, TBQueue, atomically, isEmptyTBQueue, isFullTBQueue, newTBQueueIO, readTBQueue, retry, writeTBQueue) | |
import Control.Monad (filterM, replicateM_) | |
import System.Random (StdGen, newStdGen, uniformR) | |
data Handler a | |
= forall b. Recv (TBQueue b) (b -> IO a) | |
| forall b. Send (TBQueue b) b (IO a) |
NewerOlder