Skip to content

Instantly share code, notes, and snippets.

@cheery
cheery / demo.agda
Last active February 28, 2024 10:43
chu spaces
{-# OPTIONS --guardedness #-}
module demo where
open import Data.Product
open import Data.Empty
open import Agda.Builtin.Equality
open import Agda.Primitive
sym : ∀ {a} {A : Set a} {x y : A} → x ≡ y → y ≡ x
sym refl = refl
@cheery
cheery / SimplyDifficult.hs
Last active February 22, 2022 11:53
Dynamic pattern matching attempt
{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses, GADTs, FlexibleContexts #-}
module SimplyDifficult where
-- This thing demonstrates dynamic pattern unification,
-- however the examples are too simple to verify that the unifier is
-- working correctly.
-- There were also a thing or two that were way too hard to implement.
-- I've omitted them.
module SimplyEasy where
-- From the paper: http://strictlypositive.org/Easy.pdf
-- An attempt to add case -statement.
-- Fails on typechecking a case.
data Name
= Const String
| Bound Int
| Unquoted Int
deriving (Show, Eq)
from rpython.rlib.rstacklet import StackletThread
from rpython.rlib.objectmodel import specialize
import core
class SThread(StackletThread):
def __init__(self, config):
StackletThread.__init__(self, config)
self.cont = None
def get_sthread():
@cheery
cheery / ukanren.py
Last active January 29, 2022 20:21
ukanren with untested CHR
# -*- encoding: utf-8 -*-
class TermOrVar(object):
def to_str(self, rbp=0):
assert False
class Term(TermOrVar):
def __init__(self, name, args):
self.name = name
self.args = args
for arg in args:
module lam where
open import Data.List
open import Data.Unit
open import Data.Empty
open import Data.Product
open import Data.Sum
data Ty : Set where
_⊗_ : Ty → Ty → Ty
from rpython.rlib.rstacklet import StackletThread
from rpython.rlib.objectmodel import specialize
import core
class SThread(StackletThread):
def __init__(self, config):
StackletThread.__init__(self, config)
self.cont = None
def get_sthread():
module Regex2 where
open import Function
open import Data.Bool
open import Data.Maybe
open import Data.Product
open import Data.Sum
open import Data.List as List
open import Data.Empty
open import Data.Unit
@cheery
cheery / FinMap.agda
Last active December 31, 2021 20:51
Parser in agda
module FinMap where
open import Agda.Builtin.Equality
open import Relation.Binary.PropositionalEquality using (refl; cong; trans; subst; sym)
open import Data.Nat as ℕ using (ℕ; _<_; _≤_; suc; s≤s; z≤n)
open import Data.Nat.Properties using (≤-refl; +-comm; +-identityˡ; +-identityʳ; +-suc; 1+n≢0)
open import Data.Fin hiding (compare; _<_; _≤_)
open import Data.List
open import Data.Product
open import Data.Sum
module parsergen4 where
-- for troubleshooting, not a complete parser generator/parsing engine.
open import Agda.Builtin.Equality
open import Relation.Nullary using (Dec)
open import Data.Nat
open import Data.Fin hiding (_<_)
open import Data.Fin.Properties using (suc-injective)
open import Data.Vec hiding (_>>=_)