Haskell

Haskell is a statically-typed, purely-functional, lazy programming language. Haskell first appeared in 1990 and was named after logician Haskell Curry.

Inbox

Type-level programming

some silly typeslop:

  data Sigil
    = AggregateTy -- ^ @:@
    | Global      -- ^ @$@
    | Temporary   -- ^ @%@
    | Label       -- ^ @\@@
    deriving (Show, Eq)

  class SigilChar (s :: Sigil) where
    sigilChar :: Proxy s -> Char
  instance SigilChar AggregateTy where sigilChar _ = ':'
  instance SigilChar Global      where sigilChar _ = '$'
  instance SigilChar Temporary   where sigilChar _ = '%'
  instance SigilChar Label       where sigilChar _ = '@'
  sigilChar (Proxy @AggregateTy)