Skip to content

Instantly share code, notes, and snippets.

@devinlyons
devinlyons / FSharpDB2iSeriesDataProvider.cs
Last active May 10, 2025 17:29
FSharp Provider for LinqToDB.
using LinqToDB;
using LinqToDB.Common;
using LinqToDB.Data;
using LinqToDB.DataProvider.DB2iSeries;
using LinqToDB.Linq;
using LinqToDB.SqlQuery;
using Microsoft.FSharp.Core;
using System;
using System.Linq;
using System.Data.Common;
@devinlyons
devinlyons / AesonUnit.hs
Last active June 9, 2020 18:10
An example of the problem in the CCS client.
{-# LANGUAGE
DeriveGeneric
, TypeSynonymInstances
, FlexibleInstances
, TemplateHaskell
#-}
module AesonUnit where
import Data.Aeson
@devinlyons
devinlyons / AesonUnitTypes.hs
Last active June 9, 2020 18:03
An example of the multiple types used to handle similar JSON objects.
{-# LANGUAGE
DeriveGeneric
, TypeSynonymInstances
, FlexibleInstances
, TemplateHaskell
#-}
module AesonUnitTypes where
import Data.Aeson
@devinlyons
devinlyons / AesonUnitTypeclasses.hs
Last active June 9, 2020 17:42
An example of the manually created typeclasses needed to handle the type synonyms.
{-# LANGUAGE
DeriveGeneric
, TypeSynonymInstances
, FlexibleInstances
#-}
module AesonUnitTypeclasses where
import Data.Aeson
import GHC.Generics
{-# LANGUAGE
MultiParamTypeClasses
, FunctionalDependencies
, TemplateHaskellQuotes
#-}
module SimpleValidate
( module SimpleValidate
, Name
, mkName
{-# LANGUAGE
MultiParamTypeClasses
, FunctionalDependencies
, TemplateHaskellQuotes
#-}
module SimpleValidate
( module SimpleValidate
, Name
, mkName
{-# LANGUAGE
MultiParamTypeClasses
, FlexibleInstances
, FunctionalDependencies
, FlexibleContexts
, TemplateHaskellQuotes
#-}
module ValidateMonad where
@devinlyons
devinlyons / TypeList.hs
Created March 7, 2020 00:50
Using optional fields in a type safe way. This relates to the code improvement effort.
-- NOTE: this module requires the row-types package.
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedLabels #-}
{-# LANGUAGE PartialTypeSignatures #-}
{-# LANGUAGE TypeOperators #-}
module TypeList where
-----------------------------------------------------------------------------------------------------------------------