Skip to content

Instantly share code, notes, and snippets.

instance {-# OVERLAPPABLE #-} MkConstr (K1 m a) where
mkConstr' k = coerce $ k . K1
where
coerce :: (a -> r) -> Args (K1 m a) r
coerce = unsafeCoerce
src/LSIF.hs:80:17: error:
• Couldn't match type ‘Args @{k0} (K1 @k0 m a1) r1’
with ‘Args @{k1} (K1 @k1 m a1) r1’
Expected type: (a1 -> r1) -> Args @{k1} (K1 @k1 m a1) r1
{-# LANGUAGE CPP #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveTraversable #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MultiParamTypeClasses #-}
❯ head -n 2 Test.hie
HIE809020190525
8.9.0.20190525
header = HIE<hieVersion>
header Length of GHC version GHC Version
----------- ************************ +++++++++++
00000000 48 49 45 00 00 00 00 00 00 00 00 0e 38 2e 39 2e |HIE.........8.9.|
1st pntr 2nd
++++++++++++++++++++++++++++++ ----------- *****
00000010 30 2e 32 30 31 39 30 35 31 36 00 00 09 7b 00 00 |0.20190516...{..|
pntr
*****
00000020 07 e1 07 00 00 00 54 00 00 00 65 00 00 00 73 00 |......T...e...s.|
~/hie-lsif master*
❯ cabal new-build
Build profile: -w ghc-8.9.0.20190516 -O1
In order, the following will be built (use -v for more details):
- lens-4.17 (lib:lens) (first run)
- haskell-lsp-types-0.13.0.0 (lib) (requires build)
- hie-lsif-0.1.0.0 (lib) (configuration changed)
- hie-lsif-0.1.0.0 (exe:hie-lsif) (configuration changed)
Preprocessing library for lens-4.17..
Building library for lens-4.17..
diff --git a/Distribution/Compat/ReadP.hs b/Distribution/Compat/ReadP.hs
index 1f5a989..5f6a179 100644
--- a/Distribution/Compat/ReadP.hs
+++ b/Distribution/Compat/ReadP.hs
@@ -113,8 +113,6 @@ instance Monad (P s) where
(Result x p) >>= k = k x `mplus` (p >>= k)
(Final r) >>= k = final [ys' | (x,s) <- r, ys' <- run (k x) s]
- fail = Fail.fail
-
❯ cabal new-build
Build profile: -w ghc-8.9.0.20190516 -O1
In order, the following will be built (use -v for more details):
- attoparsec-0.13.2.2 (lib) (requires build)
- cabal-doctest-1.0.6 (lib) (first run)
- vector-0.12.0.3 (lib) (requires build)
- distributive-0.6 (lib:distributive) (requires build)
- aeson-1.4.3.0 (lib) (requires build)
- comonad-5.0.5 (lib:comonad) (requires build)
- bifunctors-5.5.4 (lib) (requires build)
~/hie-lsif master*
❯ cabal new-configure --with-compiler ~/ghc/_build/stage1/bin/ghc
'cabal.project.local' file already exists. Now overwriting it.
Resolving dependencies...
Build profile: -w ghc-8.9.0.20190516 -O1
In order, the following would be built (use -v for more details):
- Cabal-2.4.1.0 (lib) (requires build)
- Glob-0.10.0 (lib) (requires build)
- HUnit-1.6.0.0 (lib) (requires build)
- Only-0.1 (lib) (requires download & build)
class c => Proven (prf :: Symbol) c where {}
applyProof :: forall prf c a. Proven prf c => (c => a) -> a
applyProof x = x
data List a = Nil | Cons a (List a)
type family Append (xs :: List a) (ys :: List a) :: List a where
Append Nil xs = xs
Append (Cons x xs) ys = Cons x (Append xs ys)
{-# LANGUAGE CPP #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveTraversable #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeSynonymInstances #-}