10From [Steve Dee](https://github.com/mrdomino/hsnock/blob/master/Language/Nock5K/Spec.hs):
13module Language.Nock5K.Spec where
14import Control.Monad.Instances
16wut (a :- b) = return $ Atom 0
17wut a = return $ Atom 1
19lus (a :- b) = Left "+[a b]"
20lus (Atom a) = return $ Atom (1 + a)
22tis (a :- a') | a == a' = return $ Atom 0
23tis (a :- b) = return $ Atom 1
26fas (Atom 1 :- a) = return a
27fas (Atom 2 :- a :- b) = return a
28fas (Atom 3 :- a :- b) = return b
29fas (Atom a :- b) | a > 3 = do x <- fas $ Atom (a `div` 2) :- b
30 fas $ Atom (2 + (a `mod` 2)) :- x
33tar (a :- (b :- c) :- d) = do x <- tar (a :- b :- c)
37tar (a :- Atom 0 :- b) = fas $ b :- a
38tar (a :- Atom 1 :- b) = return b
39tar (a :- Atom 2 :- b :- c) = do x <- tar (a :- b)
42tar (a :- Atom 3 :- b) = tar (a :- b) >>= wut
43tar (a :- Atom 4 :- b) = tar (a :- b) >>= lus
44tar (a :- Atom 5 :- b) = tar (a :- b) >>= tis
46tar (a :- Atom 6 :- b :- c :- d) = tar (a :- Atom 2 :- (Atom 0 :- Atom 1) :-
47 Atom 2 :- (Atom 1 :- c :- d) :-
48 (Atom 1 :- Atom 0) :- Atom 2 :-
49 (Atom 1 :- Atom 2 :- Atom 3) :-
50 (Atom 1 :- Atom 0) :- Atom 4 :-
52tar (a :- Atom 7 :- b :- c) = tar (a :- Atom 2 :- b :- Atom 1 :- c)
53tar (a :- Atom 8 :- b :- c) = tar (a :- Atom 7 :-
54 ((Atom 7 :- (Atom 0 :- Atom 1) :- b) :-
55 Atom 0 :- Atom 1) :- c)
56tar (a :- Atom 9 :- b :- c) = tar (a :- Atom 7 :- c :- Atom 2 :-
57 (Atom 0 :- Atom 1) :- Atom 0 :- b)
58tar (a :- Atom 10 :- (b :- c) :- d) = tar (a :- Atom 8 :- c :- Atom 7 :-
59 (Atom 0 :- Atom 3) :- d)
60tar (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