Author: Chris Lattner
{-# LANGUAGE FlexibleInstances #-} | |
{-# LANGUAGE TypeFamilies #-} | |
{-# LANGUAGE UndecidableInstances #-} | |
data family Component a :: * | |
data instance Component Health = HealthC | |
data instance Component Stamina = StaminaC |
[ Update 2020-05-31: I won't be maintaining this page or responding to comments anymore (except for perhaps a few exceptional occasions). ]
Most of the terminal emulators auto-detect when a URL appears onscreen and allow to conveniently open them (e.g. via Ctrl+click or Cmd+click, or the right click menu).
It was, however, not possible until now for arbitrary text to point to URLs, just as on webpages.
{-# LANGUAGE GeneralizedNewtypeDeriving #-} | |
module Language.HigherRank.Main | |
( Expr(..) | |
, EVar(..) | |
, Type(..) | |
, TVar(..) | |
, TEVar(..) | |
, runInfer | |
) where |
{-# LANGUAGE FlexibleInstances #-} | |
-- | An implementation of Section 3, Local Type Argument Synthesis, from the | |
-- paper /Local Type Inference/ by Pierce and Turner. | |
module Infer where | |
import Control.Monad (foldM, join, zipWithM) | |
import Data.Function (on) | |
import Data.List (foldl', groupBy, intercalate, intersect, nub) |
type StringBool = "true"|"false";
interface AnyNumber { prev?: any, isZero: StringBool };
interface PositiveNumber { prev: any, isZero: "false" };
type IsZero<TNumber extends AnyNumber> = TNumber["isZero"];
type Next<TNumber extends AnyNumber> = { prev: TNumber, isZero: "false" };
type Prev<TNumber extends PositiveNumber> = TNumber["prev"];
http://www.anandtech.com/show/11170/the-amd-zen-and-ryzen-7-review-a-deep-dive-on-1800x-1700x-and-1700/6 | |
"The High-Level Zen Overview" | |
- "Features such as the micro-op cache help most instruction streams improve in performance and bypass parts of potentially | |
long-cycle repetitive operations, but also the larger dispatch, larger retire, larger schedulers and better branch | |
prediction means that higher throughput can be maintained longer and in the fastest order possible." | |
Micro-op caches have nothing to with "bypassing parts of potentially long-cycle repetitive operations" (what does | |
that even mean?). They reduce decode bottlenecks and decrease power consumption. Depending on the implementation, |
Before you continue, if you don't know what IMGUI is don't bother reading this post, just ignore it, don't write anything in comments section, etc. If you're curious about IMGUI see bottom of this post, otherwise continue whatever you were doing, this post it's not for you. Thanks!
If you know what IMGUI is, for context read following presentations and blog posts:
- Insomniac’s Web Tools Postmortem
import provinces from 'china-division/dist/provinces.json'; | |
import cities from 'china-division/dist/cities.json'; | |
import areas from 'china-division/dist/areas.json'; | |
areas.forEach((area) => { | |
const matchCity = cities.filter(city => city.code === area.cityCode)[0]; | |
if (matchCity) { | |
matchCity.children = matchCity.children || []; | |
matchCity.children.push({ | |
label: area.name, |
# List of plugins | |
set -g @plugin 'tmux-plugins/tmux-sidebar' | |
set -g @plugin 'tmux-plugins/tpm' | |
set -g @plugin 'tmux-plugins/tmux-sensible' | |
# Other examples: | |
# set -g @plugin 'github_username/plugin_name' | |
# set -g @plugin 'git@github.com/user/plugin' | |
# set -g @plugin 'git@bitbucket.com/user/plugin' |