(loose ref: https://www.mail-archive.com/help-guix@gnu.org/msg10948.html)
sudo systemctl disable guix-daemon.service
sudo systemctl disable gnu-store.mount
systemctl reboot
sudo rm -rf /gnu
sudo rm -rf /var/guix
{-# LANGUAGE DeriveDataTypeable, GeneralizedNewtypeDeriving, TemplateHaskell, FlexibleInstances #-} | |
{-# OPTIONS_GHC -Wall -fno-warn-missing-signatures #-} | |
module QQAST where | |
import Control.Applicative | |
import Control.Exception | |
import Control.Monad.State | |
import Data.Data (Data) | |
import Data.Generics (extQ) | |
import Data.IORef |
(loose ref: https://www.mail-archive.com/help-guix@gnu.org/msg10948.html)
sudo systemctl disable guix-daemon.service
sudo systemctl disable gnu-store.mount
systemctl reboot
sudo rm -rf /gnu
sudo rm -rf /var/guix
AccessModifierOffset: -8 | |
AlignAfterOpenBracket: DontAlign | |
AlignConsecutiveMacros: true | |
AlignOperands: DontAlign | |
AlignTrailingComments: true | |
AllowAllArgumentsOnNextLine: true | |
AllowAllParametersOfDeclarationOnNextLine: false | |
AllowShortBlocksOnASingleLine: Empty | |
AllowShortCaseLabelsOnASingleLine: true | |
AllowShortEnumsOnASingleLine: true |
L1 cache reference ......................... 0.5 ns
Branch mispredict ............................ 5 ns
L2 cache reference ........................... 7 ns
Mutex lock/unlock ........................... 25 ns
Main memory reference ...................... 100 ns
Compress 1K bytes with Zippy ............. 3,000 ns = 3 µs
Send 2K bytes over 1 Gbps network ....... 20,000 ns = 20 µs
SSD random read ........................ 150,000 ns = 150 µs
Read 1 MB sequentially from memory ..... 250,000 ns = 250 µs
(** "Landin's Knot" - implements recursion by backpatching *) | |
let landins_knot f = | |
let r = ref (fun x -> assert false) in | |
let fixedpoint = f (fun x -> !r x) in | |
r := fixedpoint; | |
fixedpoint | |
let factorial = | |
let g f x = | |
if x = 0 then |
signature EQ = | |
sig | |
type t | |
val eq : t * t -> bool | |
end | |
signature SHOW = | |
sig | |
type t | |
val toString : t -> string |
(* an abstract signature for instantiations of the existential quantifier *) | |
module type EXISTS = | |
sig | |
(* the predicate *) | |
type 'a phi | |
(* the existential type *) | |
type t | |
(* the introduction rule *) |
module type Functor = sig | |
type 'a t | |
val map : ('a -> 'b) -> ('a t -> 'b t) | |
end | |
module Mu (F : Functor) : sig | |
type t = { mu : t F.t } | |
val cata : ('a F.t -> 'a) -> (t -> 'a) | |
end = struct |
module type Functor = sig | |
type 'a t | |
val map : ('a -> 'b) -> ('a t -> 'b t) | |
end | |
module Iso = struct | |
type ('a, 'b) t = { fwd : 'a -> 'b; bck : 'b -> 'a } | |
let fwd i = i.fwd | |
let bck i = i.bck |
; Copyright (c) Rich Hickey. All rights reserved. | |
; The use and distribution terms for this software are covered by the | |
; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) | |
; which can be found in the file epl-v10.html at the root of this distribution. | |
; By using this software in any fashion, you are agreeing to be bound by | |
; the terms of this license. | |
; You must not remove this notice, or any other, from this software. | |
(set! *warn-on-reflection* true) |