9From [Steve Dee](https://github.com/mrdomino/hsnock/blob/master/Language/Nock5K/Spec.hs):
12module Language.Nock5K.Spec where
13import Control.Monad.Instances
15wut (a :- b) = return $ Atom 0
16wut a = return $ Atom 1
18lus (a :- b) = Left "+[a b]"
19lus (Atom a) = return $ Atom (1 + a)
21tis (a :- a') | a == a' = return $ Atom 0
22tis (a :- b) = return $ Atom 1
25fas (Atom 1 :- a) = return a
26fas (Atom 2 :- a :- b) = return a
27fas (Atom 3 :- a :- b) = return b
28fas (Atom a :- b) | a > 3 = do x <- fas $ Atom (a `div` 2) :- b
29 fas $ Atom (2 + (a `mod` 2)) :- x
32tar (a :- (b :- c) :- d) = do x <- tar (a :- b :- c)
36tar (a :- Atom 0 :- b) = fas $ b :- a
37tar (a :- Atom 1 :- b) = return b
38tar (a :- Atom 2 :- b :- c) = do x <- tar (a :- b)
41tar (a :- Atom 3 :- b) = tar (a :- b) >>= wut
42tar (a :- Atom 4 :- b) = tar (a :- b) >>= lus
43tar (a :- Atom 5 :- b) = tar (a :- b) >>= tis
45tar (a :- Atom 6 :- b :- c :- d) = tar (a :- Atom 2 :- (Atom 0 :- Atom 1) :-
46 Atom 2 :- (Atom 1 :- c :- d) :-
47 (Atom 1 :- Atom 0) :- Atom 2 :-
48 (Atom 1 :- Atom 2 :- Atom 3) :-
49 (Atom 1 :- Atom 0) :- Atom 4 :-
51tar (a :- Atom 7 :- b :- c) = tar (a :- Atom 2 :- b :- Atom 1 :- c)
52tar (a :- Atom 8 :- b :- c) = tar (a :- Atom 7 :-
53 ((Atom 7 :- (Atom 0 :- Atom 1) :- b) :-
54 Atom 0 :- Atom 1) :- c)
55tar (a :- Atom 9 :- b :- c) = tar (a :- Atom 7 :- c :- Atom 2 :-
56 (Atom 0 :- Atom 1) :- Atom 0 :- b)
57tar (a :- Atom 10 :- (b :- c) :- d) = tar (a :- Atom 8 :- c :- Atom 7 :-
58 (Atom 0 :- Atom 3) :- d)
59tar (a :- Atom 10 :- b :- c) = tar (a :- c)
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list