gitextract_zp5j09dq/ ├── .gitignore ├── .gitmodules ├── .travis.yml ├── LICENSE ├── README.md ├── cfsmextract/ │ ├── cfsmextract.go │ ├── func.go │ ├── gortn.go │ ├── sesstype/ │ │ ├── cfsm.go │ │ ├── dot.go │ │ ├── nodes.go │ │ ├── nodestack.go │ │ ├── nodestack_test.go │ │ ├── op_string.go │ │ ├── sesstype.go │ │ └── sesstype_test.go │ ├── utils/ │ │ ├── defs.go │ │ └── emptyvalue.go │ ├── utils.go │ └── visit.go ├── cmd/ │ ├── buildssa.go │ ├── cfsms.go │ ├── checkfair.go │ ├── migo.go │ ├── root.go │ └── serve.go ├── doc.go ├── examples/ │ ├── altbit/ │ │ └── main.go │ ├── branch-dependent-deadlock/ │ │ └── main.go │ ├── channel-scoping-test/ │ │ └── main.go │ ├── commaok/ │ │ └── main.go │ ├── cond-recur/ │ │ └── main.go │ ├── deadlocking-philosophers/ │ │ └── main.go │ ├── dining-philosophers/ │ │ └── main.go │ ├── factorial/ │ │ └── main.go │ ├── fanin-pattern/ │ │ └── main.go │ ├── fanin-pattern-commaok/ │ │ └── main.go │ ├── fcall/ │ │ └── main.go │ ├── forselect/ │ │ └── main.go │ ├── giachino-concur14-dining-philosopher/ │ │ └── main.go │ ├── giachino-concur14-factorial/ │ │ └── main.go │ ├── github-golang-go-issue-12734/ │ │ └── main.go │ ├── golang-blog-prime-sieve/ │ │ └── main.go │ ├── infinite-prime-sieve/ │ │ └── main.go │ ├── issue-10-close-wrong-migo-chan-name/ │ │ └── main.go │ ├── issue-11-non-communicating-fn-call/ │ │ └── main.go │ ├── jobsched/ │ │ └── main.go │ ├── local-deadlock/ │ │ └── main.go │ ├── local-deadlock-fixed/ │ │ └── main.go │ ├── loop-variations/ │ │ └── main.go │ ├── makechan-in-loop/ │ │ └── main.go │ ├── md5/ │ │ └── main.go │ ├── multi-makechan-same-var/ │ │ └── main.go │ ├── multiple-files/ │ │ ├── main.go │ │ └── x.go │ ├── multiple-timeout/ │ │ └── main.go │ ├── parallel-buffered-recursive-fibonacci/ │ │ └── main.go │ ├── parallel-recursive-fibonacci/ │ │ └── main.go │ ├── parallel-twoprocess-fibonacci/ │ │ └── main.go │ ├── philo/ │ │ └── main.go │ ├── popl17/ │ │ ├── alt-bit/ │ │ │ └── main.go │ │ ├── concsys/ │ │ │ └── main.go │ │ ├── cond-recur/ │ │ │ └── main.go │ │ ├── dinephil/ │ │ │ └── main.go │ │ ├── fact/ │ │ │ └── main.go │ │ ├── fanin/ │ │ │ └── main.go │ │ ├── fanin-alt/ │ │ │ └── main.go │ │ ├── fib/ │ │ │ └── main.go │ │ ├── fib-async/ │ │ │ └── main.go │ │ ├── fixed/ │ │ │ └── main.go │ │ ├── forselect/ │ │ │ └── main.go │ │ ├── jobsched/ │ │ │ └── main.go │ │ ├── mismatch/ │ │ │ └── main.go │ │ └── sieve/ │ │ └── main.go │ ├── popl17ae/ │ │ ├── close/ │ │ │ └── main.go │ │ └── emptyselect/ │ │ └── main.go │ ├── powsers/ │ │ └── powser1.go │ ├── producer-consumer/ │ │ └── main.go │ ├── ring-pattern/ │ │ └── main.go │ ├── russ-cox-fizzbuzz/ │ │ └── main.go │ ├── select-with-continuation/ │ │ └── main.go │ ├── select-with-weak-mismatch/ │ │ └── main.go │ ├── semaphores/ │ │ └── main.go │ ├── send-recv-with-interfaces/ │ │ └── main.go │ ├── simple/ │ │ └── main.go │ ├── single-gortn-method-call/ │ │ └── main.go │ ├── spawn-in-choice/ │ │ └── main.go │ ├── squaring-cancellation/ │ │ └── main.go │ ├── squaring-fanin/ │ │ └── main.go │ ├── squaring-fanin-bad/ │ │ └── main.go │ ├── squaring-pipeline/ │ │ └── main.go │ ├── struct-done-channel/ │ │ └── main.go │ └── timeout-behaviour/ │ └── main.go ├── fairness/ │ └── fairness.go ├── go.mod ├── go.sum ├── logwriter/ │ └── logwriter.go ├── main.go ├── migoextract/ │ ├── call.go │ ├── chan.go │ ├── closure.go │ ├── commaok.go │ ├── context.go │ ├── datastructure.go │ ├── error.go │ ├── instance.go │ ├── loop.go │ ├── loopbound_string.go │ ├── loopstack.go │ ├── loopstate_string.go │ ├── migoextract.go │ ├── phi.go │ ├── pointer.go │ ├── print.go │ ├── select.go │ ├── storage.go │ ├── tuple.go │ └── visit.go ├── ssabuilder/ │ ├── callgraph/ │ │ └── callgraph.go │ ├── channel.go │ ├── errors.go │ ├── pointer.go │ ├── print.go │ ├── ssabuild.go │ └── util.go ├── static/ │ ├── script.js │ └── style.css ├── talks/ │ ├── basic/ │ │ ├── concurrency.go │ │ ├── fanin.go │ │ └── select.go │ ├── conf-cc-2016/ │ │ ├── deadlock-global.html │ │ ├── fanin-global.html │ │ ├── select.html │ │ ├── ssa.html │ │ └── type-inference.html │ ├── conf-cc-2016.slide │ ├── deadlock/ │ │ └── deadlock.go │ ├── snippet/ │ │ └── proc.txt │ ├── static/ │ │ ├── article.css │ │ ├── dir.css │ │ ├── dir.js │ │ ├── jquery-ui.js │ │ ├── slides.js │ │ └── styles.css │ ├── talk-golanguk-2016/ │ │ ├── calculi.html │ │ ├── compat.html │ │ ├── datatype.go │ │ ├── deadlock-notdetected.go │ │ ├── deadlock.go │ │ ├── main-type.html │ │ ├── proc.txt │ │ ├── receiver-type.html │ │ ├── sender-type.html │ │ ├── video.html │ │ └── work-type.html │ ├── talk-golanguk-2016.slide │ ├── talk-jan-2016.slide │ └── templates/ │ ├── action.tmpl │ ├── article.tmpl │ ├── dir.tmpl │ └── slides.tmpl ├── templates/ │ └── index.tmpl └── webservice/ ├── cfsm.go ├── errors.go ├── gong.go ├── handlers.go ├── migo.go ├── play.go ├── server.go ├── ssa.go └── synthesis.go