1-----------------------------------------------------------------------------
3-- Module : Language.PureScript.Kinds
4-- Copyright : (c) Phil Freeman 2013
7-- Maintainer : Phil Freeman <paf31@cantab.net>
8-- Stability : experimental
13-----------------------------------------------------------------------------
15{-# LANGUAGE DeriveDataTypeable #-}
17module Language.PureScript.Kinds where
21import Control.Monad.Unify (Unknown)
24-- The data type of kinds
28 -- Unification variable of type Kind
36 -- The kind of effects
40 -- Kinds for labelled, unordered rows without duplicates
46 | FunKind Kind Kind deriving (Show, Eq, Data, Typeable)
48everywhereOnKinds :: (Kind -> Kind) -> Kind -> Kind
49everywhereOnKinds f = go
51 go (Row k1) = f (Row (go k1))
52 go (FunKind k1 k2) = f (FunKind (go k1) (go k2))
55everythingOnKinds :: (r -> r -> r) -> (Kind -> r) -> Kind -> r
56everythingOnKinds (<>) f = go
58 go k@(Row k1) = f k <> go k1
59 go k@(FunKind k1 k2) = f k <> go k1 <> go k2
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