Skip to content

Instantly share code, notes, and snippets.

View Akii's full-sized avatar
🚀
To the Moon

Akii

🚀
To the Moon
View GitHub Profile
self: super:
let
versions = import ../versions.nix;
in
{
elescore = import (builtins.fetchGit {
url = https://github.com/Akii/elescore.git;
rev = versions.elescoreRev;
});
}
self: super:
{
elescore = import (builtins.fetchGit {
url = https://github.com/Akii/elescore.git;
rev = "d4a305800157d4a1109f7fdaeda8f2814ddd002d";
});
}
locations."/" = {
root = "${pkgs.elescore-client}/";
extraConfig = ''
etag off;
add_header etag "elescore-client-${pkgs.elescore-client.version}";
'';
};
with (import <nixpkgs> {});
with (import (builtins.fetchTarball https://github.com/moretea/yarn2nix/archive/master.tar.gz) { inherit pkgs; });
rec {
elescore-client = mkYarnPackage {
name = "elescore-client";
src = ./.;
packageJson = ./package.json;
yarnLock = ./yarn.lock;
yarnNix = ./elescore-client.nix;
};
/Users/akii/Projects/blah/src/NoPassword.hs:118:45: error:
• Couldn't match type ‘a0’ with ‘Yesod.Auth.Piece’
‘a0’ is untouchable
inside the constraints: MonadAuthHandler m m1
bound by a type expected by the context:
Yesod.Auth.Method
-> [Yesod.Auth.Piece] -> AuthHandler m TypedContent
at src/NoPassword.hs:118:23-58
Expected type: Yesod.Auth.Method
-> [Yesod.Auth.Piece] -> m1 TypedContent
let
config = {
packageOverrides = pkgs: rec {
haskellPackages = pkgs.haskellPackages.override {
overrides = haskellPackagesNew: haskellPackagesOld: rec {
datetime = pkgs.haskell.lib.dontCheck haskellPackagesOld.datetime;
};
};
};
};
<html>
<head>
<style>
body {
padding: 5px;
}
.podest {
width: 140px;
height: 110px;
padding: 5px;
data Const k a = Const k
deriving (Eq, Show)
instance Functor (Const k) where
fmap _ (Const k) = Const k
instance Monoid k => Applicative (Const k) where
pure = const (Const mempty)
_ <*> Const k = Const k
registerUser :: UserName -> EmailAddress -> RegistrationAction ()
registerUser uname email = do
mst <- gets aggState
case mst of
Nothing -> raise (UserRegistered uname email)
Just st -> do
when (userExists st) (throwError UserAlreadyRegistered)
when (emailExists st) (throwError EmailAddressExists)
raise (UserRegistered uname email)
-- kay, I get it because it's function chaining
foo = do
name <- getLine
name <- getLine
putStrLn name
return ()
-- looks like I can mutat / override `a`
someFunction :: Int -> Int
someFunction a =