Описание тега classy-prelude

Альтернативная прелюдия к Haskell, основанная на классах типов
0 ответов

Новый тип, производный IsSequence

У меня новый тип X, который в основном список Ints. Я использую ClassyPrelude вместо стандартной Prelude и хочу получить класс IsSequence. Это делает необходимым также выводить множество других классов. Расширение языка GeneralizedNewtypeDeriving до…
11 апр '18 в 13:51
3 ответа

Есть ли удобный способ для построения чисел Пеано большего уровня типа с использованием монопересекающихся?

В монопереходном пакете используются числа Пеано уровня типа для MinLen, Я могу построить их, используя цепочку Succs: toMinLen [1,2,3] :: Maybe (MinLen (Succ (Succ Zero)) [Int]) но это быстро выходит из-под контроля toMinLen [1,2,3] :: Maybe (MinLe…
14 фев '15 в 05:15
0 ответов

Как понять требование MonadUnliftIO о том, что "монады без состояния" не нужны?

Я просмотрел https://www.fpcomplete.com/blog/2017/06/tale-of-two-brackets, хотя просматривал некоторые части, и до сих пор не совсем понимаю основную проблему "StateT плохо, IO все в порядке ", кроме смутного понимания, что Haskell позволяет писать …
20 фев '19 в 04:46
1 ответ

Есть ли какая-нибудь замена итерационной функции Prelude в классной прелюдии?

В стандартной прелюдии: Prelude> :t iterate iterate :: (a -> a) -> a -> [a] Тем не менее, в классической прелюдии нет итерации, поэтому я предполагаю, что может быть какая-то более общая функция для выполнения того же самого, возможно, м…
10 янв '17 в 19:46
1 ответ

Yeson.json.object применяется к слишком многим аргументам

import Yesod import Data.Text data App = App instance Yesod App mkYesod "App" [parseRoutes| / Home GET |] getHome :: String -> Handler Value getHome = object ["name" .= ("Adam"::Text)] main = warpDebug 2012 App выдает ошибку как, Couldn't match e…
07 май '15 в 06:07
2 ответа

Не могу понять, почему MonoFoldable для моего типа не компилируется, или сообщение об ошибке

У меня есть следующий код: {-# LANGUAGE NoImplicitPrelude, OverloadedStrings, TypeFamilies #-} module AI.Analysis.Rules where import ClassyPrelude -- Our set of rules data RuleSet a = RuleSet [Rule a] [Rule a] deriving (Eq) mkRuleSet :: (Ord a) =&gt…
13 янв '16 в 04:11
1 ответ

Первоклассная прелюдия (зав. Головой)

Я пытаюсь преобразовать несколько проектов в classy-prelude в данный момент. В то время как большая часть поведения кажется мне довольно простой, (head . head) дает загадочные ошибки в простом 2D-списке. Рассмотрим следующую сессию GHCi: Prelude>…
25 фев '14 в 22:51
1 ответ

Как записать все исключения в Haskell?

Оригинальное название: Как обращаться с несколькими экземплярами типов исключений при проверке всех исключений? У меня есть следующий импорт (обратите внимание, что моя прелюдия на самом деле ClassyPrelude, которая использует UnliftIO.Exception). Об…
18 фев '19 в 20:38
2 ответа

Есть ли что-то, что мы теряем с MonoFoldable?

MonoFoldable в моно-перемещаемом пакете, кажется, в состоянии реализовать все обычные складные контейнеры и многое другое, например, такие вещи, как Bytestring и однородные кортежи могут быть сделаны MonoFoldable но нет Foldable, Мой вопрос, мы что…
22 сен '16 в 08:56
1 ответ

Как написать функцию "retryForever" в Haskell, используя обработку исключений?

Я хотел бы создать функцию, которая может восстанавливаться после любого количества ошибок, и повторить попытку. Конечно, осмысленная обработка ошибок рассматривается в других частях программы - это последняя попытка сохранить работоспособность. Ита…
24 авг '19 в 00:19
1 ответ

Почему элемент отображается в ошибке типа при использовании Foldable (а не MonoFoldable) в ClassyPrelude?

У меня есть следующая кастомная прелюдия: {-# LANGUAGE DataKinds #-} {-# LANGUAGE RankNTypes #-} module Prelude ( module ClassyPrelude , module Numeric.Units.Dimensional.Prelude , headMay , sec ) where import ClassyPrelude hiding ( (+), (-), (*), (/…
19 ноя '19 в 01:02
1 ответ

Как решить: не удалось сопоставить тип "o" с "элементом mono0"?

При вставке следующего кода из stm-pipeline: mygatherFrom :: (MonadIO m, MonadUnliftIO m) => Int -- ^ Size of the queue to create -> (TBQueue o -> m ()) -- ^ Action that generates output values -> ConduitT () o m () mygatherFrom size sca…
16 июл '20 в 23:01