{"comment":{"url":"https://api.github.com/repos/hakaru-dev/hakaru/comments/18304230","html_url":"https://github.com/hakaru-dev/hakaru/commit/97f51be5d832a2d1511e0d0e5581ee85b36aa510#commitcomment-18304230","id":18304230,"user":{"login":"JacquesCarette","id":1855141,"avatar_url":"https://avatars.githubusercontent.com/u/1855141?v=3","gravatar_id":"","url":"https://api.github.com/users/JacquesCarette","html_url":"https://github.com/JacquesCarette","followers_url":"https://api.github.com/users/JacquesCarette/followers","following_url":"https://api.github.com/users/JacquesCarette/following{/other_user}","gists_url":"https://api.github.com/users/JacquesCarette/gists{/gist_id}","starred_url":"https://api.github.com/users/JacquesCarette/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JacquesCarette/subscriptions","organizations_url":"https://api.github.com/users/JacquesCarette/orgs","repos_url":"https://api.github.com/users/JacquesCarette/repos","events_url":"https://api.github.com/users/JacquesCarette/events{/privacy}","received_events_url":"https://api.github.com/users/JacquesCarette/received_events","type":"User","site_admin":false},"position":null,"line":null,"path":null,"commit_id":"97f51be5d832a2d1511e0d0e5581ee85b36aa510","created_at":"2016-07-19T18:12:22Z","updated_at":"2016-07-19T18:12:22Z","body":"1. If we want maximum efficiency, `indexed` is going to pull out fewer things than `name`.  [`indexed` is really `symbol` union `indexed`.]  Also `type/dependent` is a library routine, which is much (much) slower than kernel types.\r\n2.  `hastype` with library types is awfully slow.  `indets` is somewhat better, but still not great.  Often it is best to do a preliminary `indets` with kernel types only, and then a select (and/or remove) of 'the rest'.  For large expressions, the first traversal of the whole expression is 100% in the kernel, which is fast, and then hopefully the remaining stuff to look at carefully is small and a decision can be made via a 'shallow' check (even if it has high interpretation overhead).\r\n\r\nOf course, this only really matters for rather large programs -- but disintegration does have a way to generate these."}}
{"actor":{"display_login":"JacquesCarette"}}