The goal is to express an ADT like the following in json schema:
data Sum
= Foo { hi :: Int }
| Bar { x :: Bool }
or in rust syntax:
{-# LANGUAGE AllowAmbiguousTypes #-} | |
{-# LANGUAGE DataKinds #-} | |
{-# LANGUAGE FlexibleContexts #-} | |
{-# LANGUAGE FlexibleInstances #-} | |
{-# LANGUAGE MultiParamTypeClasses #-} | |
{-# LANGUAGE OverloadedLabels #-} | |
{-# LANGUAGE PolyKinds #-} | |
{-# LANGUAGE ScopedTypeVariables #-} | |
{-# LANGUAGE TypeApplications #-} | |
{-# LANGUAGE TypeFamilies #-} |
# the github message format requires newlines to be escaped with the URL-style %0A | |
# see https://github.com/actions/toolkit/issues/193#issuecomment-605394935 | |
def escapeNewline: gsub("[\\n]"; "%0A"); | |
# depending on the hlint message, we want to display the | |
# headings and the bodies differently | |
def prepareTitle: | |
if .hint == "Unused LANGUAGE pragma" | |
then { heading: "Unused LANGUAGE pragma: \(.from)" | |
, suggestion: "" |
function with --description 'import all arguments as nixpkgs args and put their /bin on PATH' | |
set arg ( \ | |
printf ' | |
let pkgs = import <nixpkgs> {}; | |
in pkgs.symlinkJoin { | |
name = "extra-fish-path"; | |
paths = with pkgs; [ %s ]; | |
} | |
' \ | |
"$argv" \ |
module Main where | |
import System.Random | |
import Data.Ratio | |
import Data.Bifunctor | |
-- | Returns for a bunch of people you meet , with a chance of 1/200 for each person, whether any has Covid | |
randomPeople200 :: (RandomGen gen) => Int -> gen -> (Bool, gen) | |
randomPeople200 numberOfPeople = | |
first anyHasCovid . runGeneratorNTimes numberOfPeople 0 (uniformR (1, 200::Int)) |
The goal is to express an ADT like the following in json schema:
data Sum
= Foo { hi :: Int }
| Bar { x :: Bool }
or in rust syntax:
{-# LANGUAGE TypeApplications, ExplicitForAll, ScopedTypeVariables, BinaryLiterals, NumericUnderscores, TupleSections, ExistentialQuantification, KindSignatures, DataKinds, MultiWayIf, TypeFamilies, ConstraintKinds, TypeOperators, DerivingStrategies, GeneralizedNewtypeDeriving, InstanceSigs, MultiParamTypeClasses, FlexibleInstances #-} | |
module Main where | |
import qualified Data.Bits as Bits | |
import Data.Word | |
import qualified Data.List as List | |
import qualified Data.Text as Text | |
import qualified Data.ByteString as Bytes | |
import Data.ByteString (ByteString) |
# HLint configuration file | |
# https://github.com/ndmitchell/hlint | |
# Run `hlint --default` to see the example configuration file. | |
########################## | |
# Ignore some builtin hints | |
# often functions are more readable with explicit arguments | |
- ignore: { name: Eta reduce } |
let | |
# copies the the given `srcPath` to the nix store, | |
# but only the files and directories explicitely | |
# listed in `includePaths`. | |
# | |
# Example: | |
# filterExact ./. [ | |
# "foo.txt" | |
# "src" | |
# "tests/test_" |
#README:
This script for mpv intends to offer the fastest and simplest way to convert parts of a video—while you’re watching it and not really more work intensive than making a screenshot. A short demonstration: https://d.maxfile.ro/omdwzyhkoa.webm
##Installation:
You need:
# A set library, using attrsets with hashed keys as internal representation. | |
{ lib }: | |
let | |
/* The empty set. | |
Type: sets.empty :: <set a> |