Skip to content

Instantly share code, notes, and snippets.

@RyanGlScott
RyanGlScott / Heterogeneous.hs
Last active July 10, 2017 22:35
A library of combinators for dealing with heterogeneous equality
{-# LANGUAGE CPP #-}
{-# LANGUAGE ExplicitNamespaces #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeInType #-}
{-# LANGUAGE TypeOperators #-}
module {-Data.Type.Equality.-}Heterogeneous (
-- * The heterogeneous equality types
(:~~:)(..), type (~~),
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE EmptyCase #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
@RyanGlScott
RyanGlScott / GPMP2.hs
Last active March 13, 2019 19:05
Generic programming with multiple parameters
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE DefaultSignatures #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE GADTs #-}
module Sample where
data Result s a where
-- = Ok a
Ok :: a -> Result s a
returnResult :: a -> Result s a
returnResult x = Ok x
{-# LANGUAGE GADTs #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeInType #-}
{-# LANGUAGE TypeOperators #-}
module Main (main) where
import Data.Kind
import Data.List
import Data.Singletons.Prelude
import Data.Singletons.Prelude.List
This file has been truncated, but you can view the full file.
module LibData
( load
) where
import qualified Data.Text as T
data LValue =
PlainL !T.Text
| PlainLL !T.Text !T.Text
| TypedL !T.Text !T.Text
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilyDependencies #-}
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilyDependencies #-}
{-# LANGUAGE TypeInType #-}
@RyanGlScott
RyanGlScott / gist:983615212cb872b03e4c3dfcfda6e546
Created November 12, 2017 16:18
How to "fix" libstdc++.dll.a on GHC 8.2.1 to build llvm-hs libraries
ar dv "C:/Users/RyanGlScott/Software/ghc-8.2.1/mingw/bin/../lib/gcc/x86_64-w64-mingw32/6.2.0/libstdc++.dll.a" d005844.o d005845.o
@RyanGlScott
RyanGlScott / SigmaExample.hs
Last active November 16, 2017 21:26
Sigma types in Haskell
{-# LANGUAGE GADTs #-}
{-# LANGUAGE PackageImports #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeInType #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -Wall #-}