Skip to content

Instantly share code, notes, and snippets.

View jackfoxy's full-sized avatar

Jack Fox jackfoxy

View GitHub Profile
@jackfoxy
jackfoxy / Pretty Printer rewrite.md
Last active September 16, 2025 22:16
pretty printer grant proposal

Grant: Pretty Printer rewrite

Overview

This project consists of a small project, doccords clean-up, and a larger project, a rewrite of the pretty printer.

The doccords section consists mainly of finalizing the documentation and working with the Urbit Foundation to add the documentation in an appropriate place in docs.urbit.org, probably developer tools, dojo tools, or both. There is some programming work to complete the doccords functionality.

Bugs in the pretty printer and problems with the output format have been long standing frustrations to Urbit developers. Many of these issues have been documented in UIP-119, https://github.com/urbit/UIPs/blob/main/UIPS/UIP-0119.md. This grant addresses most of those documented issues.

@jackfoxy
jackfoxy / gist:bfdd3119ec7497e019ff765fdb4c6208
Created July 19, 2024 18:34
expected types, actual atoms
expected
[ %results
[ %result-set
[ %vector
[%tmsp ~.da ~2000.1.9]
[%ship ~.p 0]
[%agent ~.tas '/test-agent']
[%namespace ~.tas %ref]
[%table ~.tas %my-table-4]
~
@jackfoxy
jackfoxy / DecisionTables.fsx
Created September 18, 2020 21:20
A demo of decision tables using F# types and pattern matching
(*
Decision Table Demo
MIT License, do with this what you will
A demo of decision tables using F# types and pattern matching, inspired by https://www.hillelwayne.com/post/decision-table-patterns/
The compiler service flags problematic (incomplete) decision tables.
Requirements:
// Fibonacci
// not originally mine, can't remember where I got it
// State Monad combined with Continuation Monad (StateT Mondad transformer)
type StateContMonad<'s, 'a, 'r> =
StateContMonad of ('s -> ('s -> 'a -> 'r) -> 'r)
type StateContBuilder() =
member __.Return value =
StateContMonad (fun state k -> k state value)
//not tested as fsx, but insert into existing fs in a project and you should see error messages other than bad tab
//did not let me save gist with tabs
//so insert them yourself in some other editor in line 21
type Production =
{
Ident : int
Year: int
Month: int
OilProduced: float
WaterProduced: float
one name publlic verification
@jackfoxy
jackfoxy / FsharpConsoleApp.js
Created July 23, 2016 19:05
Visual Studio Macro learnings and questions
/// <reference path="C:\Users\Jack\AppData\Local\Microsoft\VisualStudio\14.0\Macros\dte.js" />
// Blog announcing new VS macro facility:
// https://blogs.msdn.microsoft.com/visualstudio/2016/05/11/macros-extension-open-sourced-in-visual-studio-2015
//
// Macros get saved to:
// <user>\AppData\Local\Microsoft\VisualStudio\14.0\Macros\Macros
// does not seem to be any way to change default folder. Roaming may also work, but I have not experimented with that.
//
// Tne open source project:
// https://github.com/Microsoft/VS-Macros
@jackfoxy
jackfoxy / gist:50ffcefb88f082c51bb1
Created February 29, 2016 18:49
SQLite cannot execute from F# FSI
//Demo SQLite cannot run from FSI
//#load "load-references-debug.fsx"
#I __SOURCE_DIRECTORY__
#r "../../packages/Microsoft.Data.Sqlite.1.0.0-rc1-final/lib/net451/Microsoft.Data.Sqlite.dll"
open Microsoft.Data.Sqlite
let conn = new SqliteConnection(@"Data Source = :memory:")
@jackfoxy
jackfoxy / gist:6679238
Last active December 23, 2015 18:59
A sandbox for F# Type explorations
namespace TypeSystemSandbox
#if INTERACTIVE
#load @"C:\FsEye\FsEye.fsx"
#I "C:\Packages"
#endif
open System
//constraints from "Constraints (F#)" MS F# Language Reference