I hereby claim:
- I am alexeyraga on github.
- I am alexeyraga (https://keybase.io/alexeyraga) on keybase.
- I have a public key ASAis1a3Gr1CpMTgz_q68t-MjHvmvAb4ufLbr67fdlRh0wo
To claim this, I am signing this object:
// A Codec interface. Specific _CODECS_ (and not messages) | |
// should be implementing this interface. | |
public interface IMessageCodec<T> | |
{ | |
string Encode(T value); | |
T Decode(string value); | |
} |
name: Haskell | |
defaults: | |
run: | |
shell: bash | |
on: [push] | |
jobs: | |
build: |
{ | |
"version": "2.0.0", | |
"tasks": [ | |
{ | |
"label": "Build", | |
"type": "shell", | |
"command": "bash", | |
"args": ["-lc", "cabal new-build && echo 'Done'"], | |
"group": { | |
"kind": "build", |
---------------- Базовое ---------------------- | |
type Число = Int | |
type Строка = Text | |
type Строчное = Show | |
type ИО = IO | |
type Сравнимое = Eq | |
type Упорядоченное = Ord | |
печатать :: Строчное значение => значение -> ИО () | |
печатать = print |
I hereby claim:
To claim this, I am signing this object:
with builtins; rec { | |
cabalProjects = listToAttrs (if pathExists ./cabal.project | |
then projectParse | |
else [ { name = baseNameOf ./.; value = ./.; } ] ); | |
projectParse = let | |
contents = readFile ./cabal.project; | |
trimmed = replaceStrings ["packages:" " "] ["" ""] contents; | |
packages = filter (x: isString x && x != "") (split "\n" trimmed); | |
package = p: substring 0 (stringLength p - 1) p; | |
paths = map (p: let p' = package p; in { name = p'; value = toPath (./. + "/${p'}"); } ) packages; |
class Monad m => NotificationQueue m where | |
readNotifications :: m [Message] | |
ackNotification :: Message -> m () | |
class Repository m where | |
readRules :: S3Location -> m (Maybe [Rule]) | |
writePolicies :: S3Location -> [Policy] -> m (Maybe ETag) | |
readSubmissions :: ( NotificationQueue m |
#!/usr/bin/env stack | |
{- stack | |
--resolver lts-6.27 | |
--install-ghc | |
runghc | |
--package containers | |
-} | |
{-# LANGUAGE ScopedTypeVariables #-} | |
{-# LANGUAGE PolyKinds #-} | |
{-# LANGUAGE DataKinds #-} |
import GHC.IO.Handle (Handle, hGetLine) | |
import GHC.IO.Handle.FD (stdout) | |
import Network | |
import Text.Printf | |
main :: IO () | |
main = withSocketsDo $ do | |
listenSock <- listenOn $ PortNumber 9999 | |
(listenHandle, clientHost, clientPort) <- accept listenSock |