Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Example Usage
tao-example
provides example usages of the tao
package to test some slightly more complicated type-level computations than what is shown the the tao
package's Getting Started section. tao-example
tests three different type functions: Take
, Drop
, and Chunk
. The implementations of these type functions are available in Tao.Example.List
.
Take
grabs the firstn
elements from a type-level list, wheren
is aNat
. This is similar to the value-leveltake
function.Drop
discards the firstn
elements from a type-level list, wheren
is aNat
. This is similar to the value-leveldrop
function.Chunk
groups the type-level list into sub-lists each of sizen
, wheren
is aNat
.
Unit tests
unitTests :: Proxy () Source #
Implementation:
unitTests :: Proxy '() unitTests = Proxy :: Proxy (AssertAll '[ "Take" @<> OneTwo @=? Take 2 OneToFour , "Take (none)" @<> Empty @=? Take 0 OneToFour , "Take (more than length)" @<> OneToFour @=? Take 8 OneToFour , "Drop" @<> ThreeFour @=? Drop 2 OneToFour , "Drop (none)" @<> OneToFour @=? Drop 0 OneToFour , "Drop (more than length)" @<> Empty @=? Drop 8 OneToFour , "Chunk" @<> '[OneTwo, ThreeFour] @=? Chunk 2 OneToFour , "Chunk (none)" @<> Empty @=? Chunk 0 OneToFour , "Chunk (more than length)" @<> '[OneToFour] @=? Chunk 8 OneToFour , "Chunk (uneven groups)" @<> '[ '[1, 2, 3], '[4] ] @=? Chunk 3 OneToFour ])