base-4.18.1.0: Basic libraries

Copyright | (c) The University of Glasgow 2002
License | see libraries/base/LICENSE
Maintainer | cvs-ghc@haskell.org
Stability | internal
Portability | non-portable (GHC Extensions)
Safe Haskell | Trustworthy
Language | Haskell2010

GHC.IsList

Description

Since: base-4.17.0.0

Synopsis

- class IsList l where
  - type Item l
  - fromList :: [Item l] -> l
  - fromListN :: Int -> [Item l] -> l
  - toList :: l -> [Item l]

# Documentation

class IsList l where Source #

The `IsList` class and its methods are intended to be used in conjunction with the OverloadedLists extension.

Since: base-4.7.0.0

Minimal complete definition

fromList, toList

Associated Types

type Item l Source #

The `Item` type function returns the type of items of the structure `l`.

Methods

fromList :: [Item l] -> l Source #

The `fromList` function constructs the structure `l` from the given list of `Item l`

fromListN :: Int -> [Item l] -> l Source #

The `fromListN` function takes the input list's length and potentially uses it to construct the structure `l` more efficiently compared to `fromList`. If the given number does not equal to the input list's length the behaviour of `fromListN` is not specified.

    fromListN (length xs) xs == fromList xs

toList :: l -> [Item l] Source #

The `toList` function extracts a list of `Item l` from the structure `l`. It should satisfy fromList . toList = id.

#### Instances

Instances details

IsList ByteArray Source # | Since: base-4.17.0.0
Instance details Defined in Data.Array.Byte Associated Types type Item ByteArray Source # Methods fromList :: [Item ByteArray] -> ByteArray Source # fromListN :: Int -> [Item ByteArray] -> ByteArray Source # toList :: ByteArray -> [Item ByteArray] Source #
IsList Version Source # | Since: base-4.8.0.0
Instance details Defined in GHC.IsList Associated Types type Item Version Source # Methods fromList :: [Item Version] -> Version Source # fromListN :: Int -> [Item Version] -> Version Source # toList :: Version -> [Item Version] Source #
IsList CallStack Source # | Be aware that 'fromList . toList = id' only for unfrozen `CallStack`s, since `toList` removes frozenness information. Since: base-4.9.0.0
Instance details Defined in GHC.IsList Associated Types type Item CallStack Source # Methods fromList :: [Item CallStack] -> CallStack Source # fromListN :: Int -> [Item CallStack] -> CallStack Source # toList :: CallStack -> [Item CallStack] Source #
IsList (ZipList a) Source # | Since: base-4.15.0.0
Instance details Defined in GHC.IsList Associated Types type Item (ZipList a) Source # Methods fromList :: [Item (ZipList a)] -> ZipList a Source # fromListN :: Int -> [Item (ZipList a)] -> ZipList a Source # toList :: ZipList a -> [Item (ZipList a)] Source #
IsList (NonEmpty a) Source # | Since: base-4.9.0.0
Instance details Defined in GHC.IsList Associated Types type Item (NonEmpty a) Source # Methods fromList :: [Item (NonEmpty a)] -> NonEmpty a Source # fromListN :: Int -> [Item (NonEmpty a)] -> NonEmpty a Source # toList :: NonEmpty a -> [Item (NonEmpty a)] Source #
IsList [a] Source # | Since: base-4.7.0.0
Instance details Defined in GHC.IsList Associated Types type Item [a] Source # Methods fromList :: [Item [a]] -> [a] Source # fromListN :: Int -> [Item [a]] -> [a] Source # toList :: [a] -> [Item [a]] Source #