I hereby claim:
- I am gian on github.
- I am gian (https://keybase.io/gian) on keybase.
- I have a public key whose fingerprint is 56CA 85D1 8F39 0D1C 75DC 5ED5 91DD 6D6E EF1D F469
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
structure M = | |
struct | |
open MParser | |
fun pp (Int i) = Int.toString i | |
| pp (Var n) = n | |
and plist [h] = pp h | |
| plist t = String.concatWith ":" (map pp t) | |
fun put e k (v : exp list) = (k,v) :: e |
fun ap (h::l) = | |
let | |
fun allpairs h [] = [] | |
| allpairs h (h'::t) = (h,h') :: allpairs h t | |
in | |
List.foldl (fn (a,b) => b @ allpairs a l) [] (h::l) | |
end |
%name P1; | |
%name P2; | |
%name P3; | |
%name P4; | |
%name P5; | |
%name F1; | |
%name F2; | |
%name F3; | |
%name F4; |
structure Syntax = | |
struct | |
open Set | |
type control = {name : string, active : bool, index : int option} | |
val fresh = ref 0 | |
fun freshIndex {name=name, active=active, index=_} = | |
{name=name, active=active, index=SOME (fresh := !fresh + 1; !fresh)} |
if(s1.type == SYM_ANY) { | |
if(s1.kind == KIND_NODE) { | |
if(s2.type == SYM_ANY) { | |
if(s2.kind == KIND_NODE) { | |
return TRUE; | |
} else { | |
return s1.kind == s2.kind; | |
} | |
} else { | |
return TRUE; |