numbered-semigroups-0.1.1.0: A sequence of semigroups, for composing stuff in multiple spatial directions.
Copyright(c) Justus Sagemüller 2017
LicenseLGPL v3
Maintainer(@) justussa $ kth.se
Stabilityexperimental
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Semigroup.Numbered

Description

 
Synopsis

Documentation

class SemigroupNo (n :: Nat) g where Source #

Minimal complete definition

sappendN | sconcatN

Methods

sappendN :: proxy n -> g -> g -> g Source #

sconcatN :: proxy n -> NonEmpty g -> g Source #

stimesN :: (Integral b, HasCallStack) => proxy n -> b -> g -> g Source #

Instances

Instances details
SemigroupNo n Void Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy n -> Void -> Void -> Void Source #

sconcatN :: proxy n -> NonEmpty Void -> Void Source #

stimesN :: (Integral b, HasCallStack) => proxy n -> b -> Void -> Void Source #

SemigroupNo n () Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy n -> () -> () -> () Source #

sconcatN :: proxy n -> NonEmpty () -> () Source #

stimesN :: (Integral b, HasCallStack) => proxy n -> b -> () -> () Source #

SemigroupNo n g => SemigroupNo n (Maybe g) Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy n -> Maybe g -> Maybe g -> Maybe g Source #

sconcatN :: proxy n -> NonEmpty (Maybe g) -> Maybe g Source #

stimesN :: (Integral b, HasCallStack) => proxy n -> b -> Maybe g -> Maybe g Source #

SemigroupNo 0 [Void] Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy 0 -> [Void] -> [Void] -> [Void] Source #

sconcatN :: proxy 0 -> NonEmpty [Void] -> [Void] Source #

stimesN :: (Integral b, HasCallStack) => proxy 0 -> b -> [Void] -> [Void] Source #

SemigroupNo 0 [Rational] Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy 0 -> [Rational] -> [Rational] -> [Rational] Source #

sconcatN :: proxy 0 -> NonEmpty [Rational] -> [Rational] Source #

stimesN :: (Integral b, HasCallStack) => proxy 0 -> b -> [Rational] -> [Rational] Source #

SemigroupNo 0 [Maybe a] Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy 0 -> [Maybe a] -> [Maybe a] -> [Maybe a] Source #

sconcatN :: proxy 0 -> NonEmpty [Maybe a] -> [Maybe a] Source #

stimesN :: (Integral b, HasCallStack) => proxy 0 -> b -> [Maybe a] -> [Maybe a] Source #

SemigroupNo 0 [Integer] Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy 0 -> [Integer] -> [Integer] -> [Integer] Source #

sconcatN :: proxy 0 -> NonEmpty [Integer] -> [Integer] Source #

stimesN :: (Integral b, HasCallStack) => proxy 0 -> b -> [Integer] -> [Integer] Source #

SemigroupNo 0 [()] Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy 0 -> [()] -> [()] -> [()] Source #

sconcatN :: proxy 0 -> NonEmpty [()] -> [()] Source #

stimesN :: (Integral b, HasCallStack) => proxy 0 -> b -> [()] -> [()] Source #

SemigroupNo 0 [Char] Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy 0 -> [Char] -> [Char] -> [Char] Source #

sconcatN :: proxy 0 -> NonEmpty [Char] -> [Char] Source #

stimesN :: (Integral b, HasCallStack) => proxy 0 -> b -> [Char] -> [Char] Source #

SemigroupNo 0 [Double] Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy 0 -> [Double] -> [Double] -> [Double] Source #

sconcatN :: proxy 0 -> NonEmpty [Double] -> [Double] Source #

stimesN :: (Integral b, HasCallStack) => proxy 0 -> b -> [Double] -> [Double] Source #

SemigroupNo 0 [Float] Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy 0 -> [Float] -> [Float] -> [Float] Source #

sconcatN :: proxy 0 -> NonEmpty [Float] -> [Float] Source #

stimesN :: (Integral b, HasCallStack) => proxy 0 -> b -> [Float] -> [Float] Source #

SemigroupNo 0 [Int] Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy 0 -> [Int] -> [Int] -> [Int] Source #

sconcatN :: proxy 0 -> NonEmpty [Int] -> [Int] Source #

stimesN :: (Integral b, HasCallStack) => proxy 0 -> b -> [Int] -> [Int] Source #

SemigroupNo 0 [a] => SemigroupNo 0 [[a]] Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy 0 -> [[a]] -> [[a]] -> [[a]] Source #

sconcatN :: proxy 0 -> NonEmpty [[a]] -> [[a]] Source #

stimesN :: (Integral b, HasCallStack) => proxy 0 -> b -> [[a]] -> [[a]] Source #

SemigroupNo 1 [[Void]] Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy 1 -> [[Void]] -> [[Void]] -> [[Void]] Source #

sconcatN :: proxy 1 -> NonEmpty [[Void]] -> [[Void]] Source #

stimesN :: (Integral b, HasCallStack) => proxy 1 -> b -> [[Void]] -> [[Void]] Source #

SemigroupNo 1 [[Rational]] Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy 1 -> [[Rational]] -> [[Rational]] -> [[Rational]] Source #

sconcatN :: proxy 1 -> NonEmpty [[Rational]] -> [[Rational]] Source #

stimesN :: (Integral b, HasCallStack) => proxy 1 -> b -> [[Rational]] -> [[Rational]] Source #

SemigroupNo 1 [[Maybe a]] Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy 1 -> [[Maybe a]] -> [[Maybe a]] -> [[Maybe a]] Source #

sconcatN :: proxy 1 -> NonEmpty [[Maybe a]] -> [[Maybe a]] Source #

stimesN :: (Integral b, HasCallStack) => proxy 1 -> b -> [[Maybe a]] -> [[Maybe a]] Source #

SemigroupNo 1 [[Integer]] Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy 1 -> [[Integer]] -> [[Integer]] -> [[Integer]] Source #

sconcatN :: proxy 1 -> NonEmpty [[Integer]] -> [[Integer]] Source #

stimesN :: (Integral b, HasCallStack) => proxy 1 -> b -> [[Integer]] -> [[Integer]] Source #

SemigroupNo 1 [[()]] Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy 1 -> [[()]] -> [[()]] -> [[()]] Source #

sconcatN :: proxy 1 -> NonEmpty [[()]] -> [[()]] Source #

stimesN :: (Integral b, HasCallStack) => proxy 1 -> b -> [[()]] -> [[()]] Source #

SemigroupNo 1 [[Char]] Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy 1 -> [[Char]] -> [[Char]] -> [[Char]] Source #

sconcatN :: proxy 1 -> NonEmpty [[Char]] -> [[Char]] Source #

stimesN :: (Integral b, HasCallStack) => proxy 1 -> b -> [[Char]] -> [[Char]] Source #

SemigroupNo 1 [[Double]] Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy 1 -> [[Double]] -> [[Double]] -> [[Double]] Source #

sconcatN :: proxy 1 -> NonEmpty [[Double]] -> [[Double]] Source #

stimesN :: (Integral b, HasCallStack) => proxy 1 -> b -> [[Double]] -> [[Double]] Source #

SemigroupNo 1 [[Float]] Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy 1 -> [[Float]] -> [[Float]] -> [[Float]] Source #

sconcatN :: proxy 1 -> NonEmpty [[Float]] -> [[Float]] Source #

stimesN :: (Integral b, HasCallStack) => proxy 1 -> b -> [[Float]] -> [[Float]] Source #

SemigroupNo 1 [[Int]] Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy 1 -> [[Int]] -> [[Int]] -> [[Int]] Source #

sconcatN :: proxy 1 -> NonEmpty [[Int]] -> [[Int]] Source #

stimesN :: (Integral b, HasCallStack) => proxy 1 -> b -> [[Int]] -> [[Int]] Source #

SemigroupNo 1 [[a]] => SemigroupNo 1 [[[a]]] Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy 1 -> [[[a]]] -> [[[a]]] -> [[[a]]] Source #

sconcatN :: proxy 1 -> NonEmpty [[[a]]] -> [[[a]]] Source #

stimesN :: (Integral b, HasCallStack) => proxy 1 -> b -> [[[a]]] -> [[[a]]] Source #

SemigroupNo n (Proxy x) Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy n -> Proxy x -> Proxy x -> Proxy x Source #

sconcatN :: proxy n -> NonEmpty (Proxy x) -> Proxy x Source #

stimesN :: (Integral b, HasCallStack) => proxy n -> b -> Proxy x -> Proxy x Source #

SemigroupNo n g => SemigroupNo n (a -> g) Source # 
Instance details

Defined in Data.Semigroup.Numbered

Methods

sappendN :: proxy n -> (a -> g) -> (a -> g) -> a -> g Source #

sconcatN :: proxy n -> NonEmpty (a -> g) -> a -> g Source #

stimesN :: (Integral b, HasCallStack) => proxy n -> b -> (a -> g) -> a -> g Source #

The common directions

Infix ops (diagrams/hmatrix style)

(|||) :: SemigroupX g => g -> g -> g infixl 6 Source #

Horizontal concatenation. Fixity as in diagrams.

(===) :: SemigroupY g => g -> g -> g infixl 6 Source #

Vertical concatenation. Fixity as in diagrams.

Infix ops (ASCII-art style)

(│) :: SemigroupX g => g -> g -> g infixr 6 Source #

Horizontal concatenation. Fixity as of the standard semigroup.

U+2502 / Vim digraph vv.

(──) :: SemigroupY g => g -> g -> g infixr 5 Source #

Vertical concatenation. U+2500 / Vim digraph hh.

(■) :: SemigroupZ g => g -> g -> g infixr 4 Source #

z-concatenation. U+25A0 / Vim digraph fS.

(┃) :: SemigroupX g => g -> g -> g infixr 3 Source #

Horizontal concatenation. U+2503 / Vim digraph VV.

(━━) :: SemigroupY g => g -> g -> g infixr 2 Source #

Vertical concatenation. U+2501 / Vim digraph HH.

(██) :: SemigroupZ g => g -> g -> g infixr 1 Source #

z-concatenation. U+254B / Vim digraph FB.