Skip to content

Instantly share code, notes, and snippets.

2024-03-17T14:30:27.9653564Z ##[group]Run stack build --fast --test unison-cli
2024-03-17T14:30:27.9654123Z stack build --fast --test unison-cli
2024-03-17T14:30:27.9682909Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
2024-03-17T14:30:27.9683342Z env:
2024-03-17T14:30:27.9683564Z ormolu_version: 0.5.2.0
2024-03-17T14:30:27.9683841Z racket_version: 8.7
2024-03-17T14:30:27.9684174Z ucm_local_bin: /home/runner/work/_temp/ucm-local-bin
2024-03-17T14:30:27.9684604Z jit_version: @unison/internal/releases/0.0.11
2024-03-17T14:30:27.9685015Z jit_src_scheme: unison-jit-src/scheme-libs/racket
2024-03-17T14:30:27.9685392Z jit_dist: unison-jit-dist
@aryairani
aryairani / gist:f5e404ad603f8d1c61c9b67881e5b25a
Created March 4, 2024 15:30
sqlite-analyzer for @unison/base/main
/** Disk-Space Utilization Report For base-main/.unison/v2/unison.sqlite3
Page size in bytes................................ 4096
Pages in the whole file (measured)................ 7809
Pages in the whole file (calculated).............. 7809
Pages that store data............................. 7809 100.0%
Pages on the freelist (per header)................ 0 0.0%
Pages on the freelist (calculated)................ 0 0.0%
Pages of auto-vacuum overhead..................... 0 0.0%
Number of tables in the database.................. 35
@aryairani
aryairani / gist:88861dce73c8fd8edad2e79d4b8de96c
Created March 4, 2024 15:13
database after project.create (latest is 2.17.0)
/** Disk-Space Utilization Report For base-release/.unison/v2/unison.sqlite3
Page size in bytes................................ 4096
Pages in the whole file (measured)................ 3245
Pages in the whole file (calculated).............. 3245
Pages that store data............................. 3245 100.0%
Pages on the freelist (per header)................ 0 0.0%
Pages on the freelist (calculated)................ 0 0.0%
Pages of auto-vacuum overhead..................... 0 0.0%
Number of tables in the database.................. 35
@aryairani
aryairani / ucm-with-localui.rb
Last active February 6, 2024 20:26
home brew formula for unison
class UnisonFromSrc < Formula
desc "Unison Language and Codebase Manager"
homepage "https://unisonweb.org"
url "https://github.com/unisonweb/unison/archive/refs/tags/release/0.5.15.tar.gz"
sha256 "03b2334fc75edafbe5300284ae19d0b9abeaf4e8c5c13d1c899c80c9e6050990"
license "MIT"
version_scheme 1
depends_on "ghc@9.2" => :build
Found "/Users/arya/work/unison/.trunk-pristine/hie.yaml" for "/Users/arya/work/unison/.trunk-pristine/a"
Run entered for haskell-language-server-wrapper(haskell-language-server-wrapper) Version 2.4.0.0 aarch64 ghc-9.2.8
Current directory: /Users/arya/work/unison/.trunk-pristine
Operating system: darwin
Arguments: ["--lsp"]
Cradle directory: /Users/arya/work/unison/.trunk-pristine
Cradle type: Stack
Tool versions found on the $PATH
cabal: 3.6.2.1
Found "/Users/arya/work/unison/.trunk-pristine/hie.yaml" for "/Users/arya/work/unison/.trunk-pristine/a"
Run entered for haskell-language-server-wrapper(haskell-language-server-wrapper) Version 2.4.0.0 aarch64 ghc-9.2.8
Current directory: /Users/arya/work/unison/.trunk-pristine
Operating system: darwin
Arguments: ["--lsp"]
Cradle directory: /Users/arya/work/unison/.trunk-pristine
Cradle type: Stack
Tool versions found on the $PATH
cabal: 3.6.2.1
.> builtins.merge

Some basics:

unique type Cat.Dog = Mouse Nat
unique type Rat.Dog = Bird
.> project.create bugreport
bugreport/main> pull @unison/json/releases/1.0.2 lib.json_1_0_2
success : '{Decoder} Text
success =
  array.at 0 (object.at "success" (object.at "authorizeduser" Decoder.text))
@aryairani
aryairani / relational-namespace.sql
Created March 9, 2022 20:42
relational namespace draft June 2021
CREATE TABLE namespace_term (
id INTEGER PRIMARY KEY NOT NULL,
namesegment_id INTEGER NOT NULL REFERENCES text(id),
referent_object_id INTEGER NOT NULL REFERENCES object(id),
referent_component_id INTEGER NOT NULL,
referent_constructor_id INTEGER NULL,
);
CREATE INDEX namespace_term_name ON namespace_term (
namesegment_id
);

Take-home functional programming interview

This document is licensed CC0.

These are some questions to give a sense of what you know about FP. This is more of a gauge of what you know, it's not necessarily expected that a single person will breeze through all questions. For each question, give your answer if you know it, say how long it took you, and say whether it was 'trivial', 'easy', 'medium', 'hard', or 'I don't know'. Give your answers in Haskell for the questions that involve code.

Please be honest, as the interviewer may do some spot checking with similar questions. It's not going to look good if you report a question as being 'trivial' but a similar question completely stumps you.

Here's a bit more guidance on how to use these labels: