Skip to content

Commit

Permalink
Update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions committed Jul 13, 2023
1 parent f2943db commit ce7907b
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 42 deletions.
47 changes: 26 additions & 21 deletions docs/src/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -1,61 +1,66 @@
# Summary

# Outline

- [Outline](./outline.md)

# Developers' Roadmap

- [Aeson](dummy/0)
- [README](haskell/developers-roadmap/README.md)
- [Aeson]()
- [HKD](haskell/developers-roadmap/Aeson/HKD.md)
- [Debug](dummy/1)
- [Debug]()
- [Breakpoint](haskell/developers-roadmap/Debug/Breakpoint.md)
- [Effectful](dummy/2)
- [Effectful]()
- [Dynamic](haskell/developers-roadmap/Effectful/Dynamic.md)
- [Exceptions](dummy/3)
- [Exceptions]()
- [Exceptions](haskell/developers-roadmap/Exceptions/Exceptions.md)
- [Theory](haskell/developers-roadmap/Exceptions/Theory.md)
- [Functions](dummy/4)
- [Functions]()
- [Composition](haskell/developers-roadmap/Functions/Composition.md)
- [Folds](haskell/developers-roadmap/Functions/Folds.md)
- [General](haskell/developers-roadmap/Functions/General.md)
- [FusedEffects](dummy/5)
- [FusedEffects]()
- [ReinterpretingEffects](haskell/developers-roadmap/FusedEffects/ReinterpretingEffects.md)
- [UndoIO](haskell/developers-roadmap/FusedEffects/UndoIO.md)
- [GADT](dummy/6)
- [GADT]()
- [GADT](haskell/developers-roadmap/GADT/GADT.md)
- [Generics](dummy/7)
- [Generics]()
- [Generics](haskell/developers-roadmap/Generics/Generics.md)
- [IO](dummy/9)
- [IO]()
- [RandomNumbers](haskell/developers-roadmap/IO/RandomNumbers.md)
- [ImplicitParams](dummy/8)
- [ImplicitParams]()
- [ImplicitParams](haskell/developers-roadmap/ImplicitParams/ImplicitParams.md)
- [Lens](dummy/10)
- [Lens]()
- [MissingKey](haskell/developers-roadmap/Lens/MissingKey.md)
- [Node](haskell/developers-roadmap/Lens/Node.md)
- [Misc](dummy/11)
- [Misc]()
- [Determinant](haskell/developers-roadmap/Misc/Determinant.md)
- [Monads](dummy/12)
- [Monads]()
- [FunctionalDependencies](haskell/developers-roadmap/Monads/FunctionalDependencies.md)
- [MonadBaseControl](haskell/developers-roadmap/Monads/MonadBaseControl.md)
- [Monads](haskell/developers-roadmap/Monads/Monads.md)
- [ParallelAndConcurrentHaskell](dummy/13)
- [ParallelAndConcurrentHaskell]()
- [Exceptions](haskell/developers-roadmap/ParallelAndConcurrentHaskell/Exceptions.md)
- [MVar](haskell/developers-roadmap/ParallelAndConcurrentHaskell/MVar.md)
- [STM](haskell/developers-roadmap/ParallelAndConcurrentHaskell/STM.md)
- [TemplateHaskell](dummy/14)
- [ConstructorTags](dummy/15)
- [TemplateHaskell]()
- [ConstructorTags]()
- [Declare](haskell/developers-roadmap/TemplateHaskell/ConstructorTags/Declare.md)
- [Use](haskell/developers-roadmap/TemplateHaskell/ConstructorTags/Use.md)
- [Typed](dummy/16)
- [Typed]()
- [Declare](haskell/developers-roadmap/TemplateHaskell/Typed/Declare.md)
- [Use](haskell/developers-roadmap/TemplateHaskell/Typed/Use.md)
- [Test](dummy/17)
- [Test]()
- [Theory](haskell/developers-roadmap/Test/Theory.md)
- [TypeClasses](dummy/18)
- [TypeClasses]()
- [Monoid](haskell/developers-roadmap/TypeClasses/Monoid.md)
- [Theory](haskell/developers-roadmap/TypeClasses/Theory.md)
- [TypeClasses](haskell/developers-roadmap/TypeClasses/TypeClasses.md)
- [TypeFamilies](dummy/19)
- [TypeFamilies]()
- [TaggedClasses](haskell/developers-roadmap/TypeFamilies/TaggedClasses.md)
- [Theory](haskell/developers-roadmap/TypeFamilies/Theory.md)
- [TypeFamilies](haskell/developers-roadmap/TypeFamilies/TypeFamilies.md)
- [README](haskell/developers-roadmap/README.md)

# Optics By Example

Expand Down
43 changes: 43 additions & 0 deletions docs/src/haskell/developers-roadmap/TypeFamilies/TaggedClasses.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
```haskell
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE StandaloneKindSignatures #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}

module Try.TypeFamilies.TaggedClasses where

-- Rewriting instance Chains using Tagged Classes
-- https://github.com/sigma-andex/purescript-barlow-lens/blob/295c4b32fbeca052ebfd3665a9071012e654b9c0/src/Data/Lens/Barlow/Parser.purs#L11

import Data.Kind (Constraint)
import GHC.TypeLits (AppendSymbol, Symbol)

data Tag
= WhenDot
| WhenSpace
| WhenSame
| Else

type SelectTag :: Symbol -> Symbol -> Symbol -> Symbol -> Tag
type family SelectTag head tail out rest where
SelectTag "." t "." t = WhenDot
SelectTag " " t "" t = WhenSpace
SelectTag h "" h "" = WhenSame
SelectTag _ _ _ _ = Else

type ParsePercentageSymbol' :: Tag -> Symbol -> Symbol -> Symbol -> Symbol -> Constraint
class ParsePercentageSymbol' tag head tail out rest

instance ParsePercentageSymbol' WhenDot "." t "" t
instance ParsePercentageSymbol' WhenSpace " " t "" t
instance ParsePercentageSymbol' WhenSame h "" h ""
instance (ParsePercentageSymbol th tt tout trest, t ~ AppendSymbol th tt, out ~ AppendSymbol h tout) => ParsePercentageSymbol' Else h t out trest

type ParsePercentageSymbol :: Symbol -> Symbol -> Symbol -> Symbol -> Constraint
type ParsePercentageSymbol h t o r = ParsePercentageSymbol' (SelectTag h t o r) h t o r
```
43 changes: 22 additions & 21 deletions docs/src/haskell/toc.md
Original file line number Diff line number Diff line change
@@ -1,59 +1,60 @@
# Developers' Roadmap

- [Aeson](dummy/0)
- [README](haskell/developers-roadmap/README.md)
- [Aeson]()
- [HKD](haskell/developers-roadmap/Aeson/HKD.md)
- [Debug](dummy/1)
- [Debug]()
- [Breakpoint](haskell/developers-roadmap/Debug/Breakpoint.md)
- [Effectful](dummy/2)
- [Effectful]()
- [Dynamic](haskell/developers-roadmap/Effectful/Dynamic.md)
- [Exceptions](dummy/3)
- [Exceptions]()
- [Exceptions](haskell/developers-roadmap/Exceptions/Exceptions.md)
- [Theory](haskell/developers-roadmap/Exceptions/Theory.md)
- [Functions](dummy/4)
- [Functions]()
- [Composition](haskell/developers-roadmap/Functions/Composition.md)
- [Folds](haskell/developers-roadmap/Functions/Folds.md)
- [General](haskell/developers-roadmap/Functions/General.md)
- [FusedEffects](dummy/5)
- [FusedEffects]()
- [ReinterpretingEffects](haskell/developers-roadmap/FusedEffects/ReinterpretingEffects.md)
- [UndoIO](haskell/developers-roadmap/FusedEffects/UndoIO.md)
- [GADT](dummy/6)
- [GADT]()
- [GADT](haskell/developers-roadmap/GADT/GADT.md)
- [Generics](dummy/7)
- [Generics]()
- [Generics](haskell/developers-roadmap/Generics/Generics.md)
- [IO](dummy/9)
- [IO]()
- [RandomNumbers](haskell/developers-roadmap/IO/RandomNumbers.md)
- [ImplicitParams](dummy/8)
- [ImplicitParams]()
- [ImplicitParams](haskell/developers-roadmap/ImplicitParams/ImplicitParams.md)
- [Lens](dummy/10)
- [Lens]()
- [MissingKey](haskell/developers-roadmap/Lens/MissingKey.md)
- [Node](haskell/developers-roadmap/Lens/Node.md)
- [Misc](dummy/11)
- [Misc]()
- [Determinant](haskell/developers-roadmap/Misc/Determinant.md)
- [Monads](dummy/12)
- [Monads]()
- [FunctionalDependencies](haskell/developers-roadmap/Monads/FunctionalDependencies.md)
- [MonadBaseControl](haskell/developers-roadmap/Monads/MonadBaseControl.md)
- [Monads](haskell/developers-roadmap/Monads/Monads.md)
- [ParallelAndConcurrentHaskell](dummy/13)
- [ParallelAndConcurrentHaskell]()
- [Exceptions](haskell/developers-roadmap/ParallelAndConcurrentHaskell/Exceptions.md)
- [MVar](haskell/developers-roadmap/ParallelAndConcurrentHaskell/MVar.md)
- [STM](haskell/developers-roadmap/ParallelAndConcurrentHaskell/STM.md)
- [TemplateHaskell](dummy/14)
- [ConstructorTags](dummy/15)
- [TemplateHaskell]()
- [ConstructorTags]()
- [Declare](haskell/developers-roadmap/TemplateHaskell/ConstructorTags/Declare.md)
- [Use](haskell/developers-roadmap/TemplateHaskell/ConstructorTags/Use.md)
- [Typed](dummy/16)
- [Typed]()
- [Declare](haskell/developers-roadmap/TemplateHaskell/Typed/Declare.md)
- [Use](haskell/developers-roadmap/TemplateHaskell/Typed/Use.md)
- [Test](dummy/17)
- [Test]()
- [Theory](haskell/developers-roadmap/Test/Theory.md)
- [TypeClasses](dummy/18)
- [TypeClasses]()
- [Monoid](haskell/developers-roadmap/TypeClasses/Monoid.md)
- [Theory](haskell/developers-roadmap/TypeClasses/Theory.md)
- [TypeClasses](haskell/developers-roadmap/TypeClasses/TypeClasses.md)
- [TypeFamilies](dummy/19)
- [TypeFamilies]()
- [TaggedClasses](haskell/developers-roadmap/TypeFamilies/TaggedClasses.md)
- [Theory](haskell/developers-roadmap/TypeFamilies/Theory.md)
- [TypeFamilies](haskell/developers-roadmap/TypeFamilies/TypeFamilies.md)
- [README](haskell/developers-roadmap/README.md)

# Optics By Example

Expand Down

0 comments on commit ce7907b

Please sign in to comment.