ghc-8.2.1-rc1でcabal-installを試すにはcabalのリポジトリe4c36b9dd時点に, このパッチ当てて
EXTRA_CONFIGURE_OPTS="--allow-newer=base,time" ./bootstrap.sh
あと,配布されてる ghc-8.2.0.20170404-x86_64-deb8-linux.tar.xz はjesssieだとリンクに失敗するのでsidにしとくといい
module C where | |
import Relation.Binary.PropositionalEquality as PropEq | |
open PropEq using (_≡_; refl) | |
data C {A : Set} : Set where | |
c : (a : A) → C | |
------ ケース1 | |
-- OK |
function init-prompt-git-branch() | |
{ | |
git symbolic-ref HEAD 2>/dev/null >/dev/null && | |
echo "($(git symbolic-ref HEAD 2>/dev/null | sed 's/^refs\/heads\///'))" | |
} | |
if which git 2>/dev/null >/dev/null | |
then | |
export PS1_GIT_BRANCH='\[\e[$[COLUMNS]D\]\[\e[1;31m\]\[\e[$[COLUMNS-$(length $(init-prompt-git-branch))]C\]$(init-prompt-git-branch)\[\e[$[COLUMNS]D\]\[\e[0m\]' | |
else |
ghc-8.2.1-rc1でcabal-installを試すにはcabalのリポジトリe4c36b9dd時点に, このパッチ当てて
EXTRA_CONFIGURE_OPTS="--allow-newer=base,time" ./bootstrap.sh
あと,配布されてる ghc-8.2.0.20170404-x86_64-deb8-linux.tar.xz はjesssieだとリンクに失敗するのでsidにしとくといい
{-# LANGUAGE GADTs #-} | |
{-# LANGUAGE DataKinds #-} | |
{-# LANGUAGE KindSignatures #-} | |
{-# LANGUAGE TypeApplications #-} | |
{-# LANGUAGE TypeOperators #-} | |
{-# LANGUAGE ScopedTypeVariables #-} | |
module Siri where | |
import GHC.TypeLits (Nat) |
{-# LANGUAGE RankNTypes #-} | |
{-# LANGUAGE GADTs #-} | |
{-# LANGUAGE KindSignatures #-} | |
{-# LANGUAGE TypeOperators #-} | |
{-# LANGUAGE DataKinds #-} | |
module Main where | |
import Prelude hiding ((.), Word) | |
import qualified Prelude | |
import Data.Singletons |
{-# LANGUAGE ConstraintKinds #-} | |
{-# LANGUAGE UndecidableInstances #-} | |
{-# LANGUAGE TypeFamilies #-} | |
{-# LANGUAGE DataKinds #-} | |
{-# LANGUAGE TypeOperators #-} | |
import Data.Typeable | |
import Data.Type.Equality | |
import GHC.TypeLits | |
import Data.Constraint (Dict(..)) |
FROM ubuntu:18.04 | |
RUN apt-get update \ | |
&& DEBIAN_FRONTEND=noninteractive \ | |
apt-get upgrade -y \ | |
&& DEBIAN_FRONTEND=noninteractive \ | |
apt-get install -y --no-install-recommends \ | |
haskell-stack \ | |
&& apt-get clean && rm -rf /var/cache/apt/archives/* /var/lib/apt/lists/* |
{-# LANGUAGE GADTs #-} | |
module FooOrBar (someFun, Foo(..), Bar(..)) where | |
data Foo = Foo deriving Show | |
data Bar = Bar deriving Show | |
-- 「a が Foo か Bar である」という命題 (を explicit parameter として扱うため)の定義 | |
data FooOrBarExplicitParameter a where | |
IsFoo :: FooOrBarExplicitParameter Foo -- 「a が Foo である」という証明オブジェクト |
#!/bin/env stack | |
{- | |
stack --resolver=lts-12.24 script --package extensible | |
-} | |
{-# LANGUAGE DataKinds #-} | |
{-# LANGUAGE OverloadedLabels #-} | |
{-# LANGUAGE PolyKinds #-} | |
{-# LANGUAGE TypeOperators #-} | |
{-# LANGUAGE GADTs #-} |
module WhatIsInstance where | |
data Hoge = Foo | Bar | |
-- 型aが同値関係を持つということを示す型 | |
data ThisIsEq a = ThisIsEq { op :: a -> a -> Bool } | |
-- 型Hogeが同値関係を持つ証拠となる値 | |
hogeIsEq :: ThisIsEq Hoge | |
hogeIsEq = ThisIsEq go where |