Skip to content

Instantly share code, notes, and snippets.

@adamgundry
adamgundry / GenericDiscrimination.hs
Created Mar 4, 2020
Being a horrible abuse of INCOHERENT to determine whether Generic instances exist
View GenericDiscrimination.hs
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
@kcsongor
kcsongor / kindclass.hs
Last active Dec 3, 2017
some kind classes
View kindclass.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
-- (some examples at the bottom)
import Data.Kind (Constraint, Type)
import GHC.TypeLits (Nat, type (+), type (*))
View Grammar.purs
module Grammar where
import Prelude
import Control.Applicative.Free (FreeAp, liftFreeAp, foldFreeAp)
import Control.Alt (class Alt, (<|>))
import Control.Alternative (class Alternative)
import Control.Monad.Eff (Eff)
import Control.Monad.Eff.Console (log, CONSOLE)
import Control.Plus (class Plus, empty)