clash-prelude-1.8.4: Clash: a functional hardware description language - Prelude library

Copyright | (C) 2019 Myrtle Software Ltd
License | BSD2 (see the file LICENSE)
Maintainer | Christiaan Baaij <christiaan.baaij@gmail.com>
Safe Haskell | None
Language | Haskell2010

Clash.Class.HasDomain.Common

Contents

- Internal

Description

Synopsis

- type family Unlines (ln :: [k]) :: ErrorMessage where ...
- type (:<<>>:) (k1 :: t1) (k2 :: t2) = ToEM k1 ':<>: ToEM k2
- type (:$$$:) (k1 :: t1) (k2 :: t2) = ToEM k1 ':$$: ToEM k2
- type family (as :: [k]) :++: (bs :: [k]) :: [k] where ...
- type family ToEM (k :: t) :: ErrorMessage where ...

# Documentation

type family Unlines (ln :: [k]) :: ErrorMessage where ... Source #

Combine multiple lines with line break. Type-level version of the `unlines` function but for ErrorMessage.

Equations

Unlines ('[] :: [k]) = 'Text "" |
Unlines (x ': xs :: [Symbol]) = 'Text x ':$$: Unlines xs |
Unlines (x ': xs :: [ErrorMessage]) = x ':$$: Unlines xs |

type (:<<>>:) (k1 :: t1) (k2 :: t2) = ToEM k1 ':<>: ToEM k2 infixl 5 Source #

type (:$$$:) (k1 :: t1) (k2 :: t2) = ToEM k1 ':$$: ToEM k2 infixl 4 Source #

type family (as :: [k]) :++: (bs :: [k]) :: [k] where ... infixl 4 Source #

Equations

(a :: [k]) :++: ('[] :: [k]) = a |
('[] :: [k]) :++: (b :: [k]) = b |
(a ': as :: [k]) :++: (bs :: [k]) = a ': (as :++: bs) |

# Internal

type family ToEM (k :: t) :: ErrorMessage where ... Source #

Equations

ToEM (k :: Symbol) = 'Text k |
ToEM (k :: ErrorMessage) = k |
ToEM (k :: t) = 'ShowType k |